1

エラーが発生しましCDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1364 Field 'editedbyid' doesn't have a default value.た実行された SQL ステートメントは次のとおりです。

INSERT INTO `pos` (`serialnumber`, `posmodelid`, `active`, `created`, `updated`, `forapproval`, `approvedbyid`) VALUES (:yp0, :yp1, 1, NOW(), :yp2, :yp3, :yp4)"

MySQL、PHP、および uii フレームワークを使用しています。どうすればこれを解決できますか?

4

2 に答える 2

11

データベース テーブルのフィールドeditedbyidにデフォルト値が設定されていません。

editedbyidそのため、新しい行を挿入するときに、データベース エンジンはフィールドに設定する必要がある値を認識していません。

可能な解決策は次のとおりです。

1. デフォルト値を設定します。

たとえば phpmyadmin では、posテーブルを選択し、「editedbyid」フィールドのデフォルト値を入力します。

2.「editedbyid」フィールドに値を挿入します。

INSERT INTO `pos` (`serialnumber`, `posmodelid`, `active`, `created`, `updated`, `forapproval`, `approvedbyid`, `editedbyid`) VALUES (:yp0, :yp1, 1, NOW(), :yp2, :yp3, :yp4, 0)" 

編集:デフォルト値に関するこの質問と回答もお読みください。

于 2012-07-31T04:53:08.747 に答える
2

SET GLOBAL sql_mode='' を実行するか、my.cnf を編集して、STRICT_ALL_TABLES などを設定していないことを確認してください。Yiiの問題

于 2016-05-31T19:42:43.440 に答える