字段'x'没有默认值

时间:2012-07-31 04:48:04

标签: php mysql

我收到错误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框架。我怎么解决这个问题?

2 个答案:

答案 0 :(得分:11)

数据库表中的字段editedbyid没有配置默认值。

因此,在插入新行时,数据库引擎不知道它必须为editedbyid字段设置哪个值。

可能的解决方案是:

<强> 1。设置默认值:

以phpmyadmin为例,选择pos表,输入&#39; editedbyid&#39;的默认值。字段。

<强> 2。为&#39; editedbyid&#39;插入一个值字段:

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

编辑:同时阅读有关默认值的this question and answers

答案 1 :(得分:2)

也许尝试运行SET GLOBAL sql_mode =&#39;&#39;或编辑你的my.cnf以确保你没有设置STRICT_ALL_TABLES等。 Yii问题