ホームページ >バックエンド開発 >PHPチュートリアル >Laravel Eloquentで互換性のないSQL_MODEによるSQLエラーを修正する方法?

Laravel Eloquentで互換性のないSQL_MODEによるSQLエラーを修正する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-18 12:28:30266ブラウズ

How to Fix SQL Errors Due to Incompatible SQL_MODE in Laravel Eloquent?

Laravel Eloquent で互換性のない SQL_MODE が原因で発生したエラーを解決する

Laravel Eloquent でグループ化を伴うクエリを実行すると、次のようなエラーが発生する場合があります:

SQLSTATE[42000]: Expression #1 of SELECT list is not in GROUP BY clause ... incompatible with sql_mode=only_full_group_by

このエラーは通常、クエリで使用されている列が GROUP BY 句に含まれていない場合に発生します。

解決策:

この問題を解決するには、次の手順を実行します。推奨されるアプローチは、データベース接続設定で MySQL 厳密モードを無効にすることです。これは、データベース構成ファイル (config/database.php など) に次の行を追加することで実現できます。

<code class="php">'connections' => [
    'mysql' => [
        // MySQL 5.6 behavior
        'strict' => false,

        // MySQL 5.7 behavior
        'strict' => true
    ]
],</code>

さらに、Matt Stauffer のブログ投稿で提供されている他の構成設定を調べて、特定のデータベース環境に最適な設定。 MySQL 厳密モードを無効にすることで、GROUP BY 句で非集計カラムを使用できるようになり、エラーが解決されます。

以上がLaravel Eloquentで互換性のないSQL_MODEによるSQLエラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。