Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在codeigniter中仅禁用\u FULL\u GROUP\u?_Php_Mysql - Fatal编程技术网

Php 如何在codeigniter中仅禁用\u FULL\u GROUP\u?

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中与GroupBy合作过,但最近我遇到了一个GroupBy问题。我在很多网站上搜索,发现问题是因为升级了mysql版本,启用了mysql,而在旧版本中禁用了mysql

我不会使用查询将其删除,而是从代码中删除。我也不想从my.cnf中删除,因为当该站点启用时,它会再次出现

所以请给我推荐一个至少在codeigniter中有效的解决方案。我将感谢你:-)

我尝试了以下问题:

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连接。因此,在模型中的同一位置使用它。因此,每次加载页面时,它都会运行。我想运行这一次,这样页面将在更短的时间内加载。