当前位置:首页 > php > 正文内容

lumen中出现Syntax error or access violation: 1055 ‘***‘ isn‘t in GROUP BY

phpmianshi2个月前 (01-11)php64

背景

laravel 5.3 以后默认开启 mysql严格模式(strict)
在mysql在严格模式下, 并且开启了ONLY_FULL_GROUP_BY的情况下,
group by 的字段没有出现在 select 的语句中会报错.关闭了严格模式就不会报错.


示例

public static function orders($phase)
{
    return self::select(DB::raw("SUM(orders) as orders"),"type","users_id","name")
                ->groupBy("type","name")
                ->where("phase",$phase)
                ->get();
}

会出现如下错误,当然*号内的内容是不同的

Syntax error or access violation: 1055 '***' isn't in GROUP BY


解决方案

laravel出现上述错误是sql_mode设置导致的问题,修改config/database.php配置文件的strict => false即可关闭了严格模式:

'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', 'localhost'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => '',
    'strict' => false,
    'engine' => null,
],


版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

php中的system方法偶尔会出现unable to fork

背景php代码中调用了system方法,执行了shell脚本,一开始运行正常,过一段时间偶尔会出现unable to fork的报错问题原因system调用会fork新的进程,因为每个用户有最大进程数...

php-fpm backlog参数优化

php-fpm backlog参数优化

一、问题分析       1、分析php-fpm.slow.log发现没有执行慢的地方,然后把目光放到了nginx 与php建立连接的阶段上,使用tcpdump...

理解PHP中的Generator

PHP中Generator,似乎是在5.5版中引入了。PHP中的协程必须依赖于Generator来实现,所以我觉得有必要先专门写一篇文章介绍Generator。Generator这个单词在这里对应的中...

php中如何优雅的写复杂if-else

提前return优化逻辑结构,让正常流程走主干,非正常流程提前return,去除不必要的else优化前$a = 1; $b = 2; $c =&n...

PHP数组实际占用内存大小的分析

1.数组正常的赋值是不会发生内存改变的,但是当赋值的新数组发生改动的时候,php就会新开辟内存给新的数组,这里会造成无谓的内存消耗。最好是不要直接这样赋值,如果非赋值不可的话,记得加上‘&’符...

PHP内核分析之常见变量基本结构(六)

一、类型一览zval中的u1.v.type用来存储变量的类型,而zval.value存储的是不同类型对应的值,所以type决定value取值的地方,以下是PHP7所定义的所有类型。#define&nb...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。