为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 codeigniter 中禁用 ONLY_FULL_GROUP_BY?

如何在 codeigniter 中禁用 ONLY_FULL_GROUP_BY?

PHP
慕勒3428872 2021-10-15 16:11:31
我可能曾在 mysql 中与 Group BY 一起工作过,但最近我收到了 Group By 的问题。我从许多站点进行了搜索,发现问题是由于升级了启用它的 mysql 版本而在旧版本中它被禁用了。我不会使用查询而是从代码中删除它。我也不想从 my.cnf 中删除,因为当网站上线时它会再次出现。所以请建议我一个至少适用于 codeigniter 的解决方案。我会感谢你:-)我试过下面的查询:mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));它起作用了,但是当服务器重新启动时,问题再次出现。
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

Codeigniter 有以下stricton选项application/config/database.php:


$db['default'] = array(

    ...

    'stricton' => FALSE, // forces 'Strict Mode' connections

    ...

);

或者你可以sql_mode像这样禁用参数:


$this->db->query('SET SESSION sql_mode = ""');


// ONLY_FULL_GROUP_BY

$this->db->query('SET SESSION sql_mode =

                  REPLACE(REPLACE(REPLACE(

                  @@sql_mode,

                  "ONLY_FULL_GROUP_BY,", ""),

                  ",ONLY_FULL_GROUP_BY", ""),

                  "ONLY_FULL_GROUP_BY", "")');


查看完整回答
反对 回复 2021-10-15
  • 1 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信