MAMP から Apache、MySQL、および PHP への最近の移行で、INSERT コマンドを実行する突然次のエラーが発生しました:
SQLSTATE[HY000]: General error: 1364 Field 'display_name' doesn't have a default value
この問題は、MySQL のデフォルト動作の変更が原因で発生しました。 MySQL バージョン 5.6.13 では、STRICT モードが有効になることが多く、これによりデータ検証のより厳格なルールが適用されます。その結果、デフォルト値のないフィールドは挿入中に空白のままにすることができなくなりました。
この問題を解決するには、MySQL STRICT モード設定を変更する必要があります。考えられる解決策は 2 つあります:
一時的な変更: MySQL コンソールで次のコマンドを実行します:
SET GLOBAL sql_mode='';
これにより、STRICT が一時的に無効になります。後続のすべてのクエリのモード。
これらの変更のいずれかを行った後、MySQL サーバーを再起動すると、INSERT コマンドが「フィールドにデフォルト値がありません」エラーが発生せずに正常に実行されるはずです。 .
以上がMySQL STRICT モードで「フィールドにデフォルト値がありません」エラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。