ローカルで開発しようと思い、Windowsにapache、php、mysql5.0を入れた。で、アプリを動かしてみたら、エラーが出る。調べてみたらSQLエラーらしい。
Error #1364 : Field '%s' doesn't have a default value
というエラーメッセージが。
insert into TABLE (aaa, bbb) values ('AAA', '');
という具合に、''で空白を挿入しようとするのがダメらしい。普段Linux上でMySQLを使ってるときはこんなエラー出たこと無いのに。。。
ググってみても、それらしきソースは見つからない。そこでmy.iniを見てみると、なんだか見慣れないオプションが設定されている。
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
http://www.limy.org/program/db/mysql/mysql_option.html
↑このサイトによると、「他ベンダーのデータベースやバージョンの違うMySQLとの互換性の為に使用します。詳細は不明です。」とのこと。
とりあえずコメントアウトしてMySQL再起動してみたら、見事解決。。。
一体なんだったんだろう。よくわからないが、とりあえず良かった。
同じエラーで、同じように修正したら治りました。
返信削除助かりました。ありがとうございました。
似たメッセージが出ていたので、同じように修正したらなおりました。
返信削除ありがとうございました。