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 回答