INSERT
を実行しようとすると問題が発生しましたが、それは成功していなくても成功しています。ANSI_QUOTESモードによる挿入
私のテーブル構造:
注:given1、given2とgiven3は必須フィールドです。
私は、次の方法(https://github.com/catfan/Medoo)を実行する私のアプリケーションで:
$this->medoo->insert('teste', ['dado2' => 11, 'dado3' => 'teste']);
、data2はタイプSET
のものであり、DATA3がタイプINTEGER`であるので、これは受け入れられないはずです。それでも、挿入は成功します。さらに、data1 は必須フィールドでも、という引数として渡されません。私は、MySQLのログをチェックし、次のエントリだ
:
データベースに手動でSQLを実行するSET SQL_MODE=ANSI_QUOTES;
INSERT INTO "teste" ("dado2", "dado3") VALUES ('11', 'teste');
を、私はこの問題は、ANSI_QUOTES
を使用中であることを発見しました。データベースは何とか挿入を受け入れ、代わりにそれは警告を発行し、エラーメッセージの発行:
私はそれがMedooのソースコードを変更したり、MySQLへこの問題を報告する必要があると思いますが。私は何をすべきかわかりません。
MySQLバージョンを使用すると、列に収まらない値を挿入しようとしたとき、私はMySQLサーバがSTRICT
モードに設定されている6.3.6
完璧な友人!情報をありがとう。 Medoo.php($ commands [] = 'SET SQL_MODE = ANSI_QUOTES')の121行目にコメントし、ANSI_QUOTESモードを直接MySQL設定に追加することで問題を解決しました。問題はMedooであり、ANSI_QUOTESだけを残すようにすべてのモードを削除するべきではなく、他のモードを維持してANSI_QUOTESを追加する必要があります。 –