Php 如何在codeigniter中仅禁用\u FULL\u GROUP\u?
我曾在mysql中与GroupBy合作过,但最近我遇到了一个GroupBy问题。我在很多网站上搜索,发现问题是因为升级了mysql版本,启用了mysql,而在旧版本中禁用了mysql 我不会使用查询将其删除,而是从代码中删除。我也不想从my.cnf中删除,因为当该站点启用时,它会再次出现 所以请给我推荐一个至少在codeigniter中有效的解决方案。我将感谢你:-) 我尝试了以下问题:Php 如何在codeigniter中仅禁用\u FULL\u GROUP\u?,php,mysql,Php,Mysql,我曾在mysql中与GroupBy合作过,但最近我遇到了一个GroupBy问题。我在很多网站上搜索,发现问题是因为升级了mysql版本,启用了mysql,而在旧版本中禁用了mysql 我不会使用查询将其删除,而是从代码中删除。我也不想从my.cnf中删除,因为当该站点启用时,它会再次出现 所以请给我推荐一个至少在codeigniter中有效的解决方案。我将感谢你:-) 我尝试了以下问题: mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_m
mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
它工作正常,但当服务器重新启动时,问题再次出现。Codeigniter在
application/config/database.php
中有stricton
选项:
$db['default'] = array(
...
'stricton' => FALSE, // forces 'Strict Mode' connections
...
);
或者您可以禁用sql\u模式
参数,如下所示:
$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", "")');
Codeigniter在
application/config/database.php
中有stricon
选项:
$db['default'] = array(
...
'stricton' => FALSE, // forces 'Strict Mode' connections
...
);
或者您可以禁用sql\u模式
参数,如下所示:
$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", "")');
你用的是什么CodeIgniter版本?我现在用的是3.1.0版本。你用的是什么CodeIgniter版本?我现在用的是3.1.0版本。是的,我见过,但他们用的是stricton,我真的不明白。这与我的问题有关吗?@abahmed我已经确定了我的答案,请检查。谢谢你的回答。最后,请告诉我在何处放置此查询,如果仅\u FULL\u GROUP\u未启用,则此查询应运行一次,否则不应执行,以便提高速度。其中一个查询必须在框架数据库连接后执行。CodeIgniter在model
\uu构造方法中初始化db连接。因此,在模型中的同一位置使用它。因此,每次加载页面时,它都会运行。我想运行这一次,这样页面可以在更短的时间内加载。是的,我看到了,但他们使用stricton的内容我真的不明白。这与我的问题有关吗?@abahmed我已经确定了我的答案,请检查。谢谢你的回答。最后,请告诉我在何处放置此查询,如果仅\u FULL\u GROUP\u未启用,则此查询应运行一次,否则不应执行,以便提高速度。其中一个查询必须在框架数据库连接后执行。CodeIgniter在model\uu构造方法中初始化db连接。因此,在模型中的同一位置使用它。因此,每次加载页面时,它都会运行。我想运行这一次,这样页面将在更短的时间内加载。