2012-07-31 173 views
1

我得到一个错误CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1364 Field 'editedbyid' doesn't have a default value.执行的SQL语句是:场“X”没有默认值

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

我使用MySQL,PHP和UII框架。我该如何解决这个问题?

回答

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)" 

EDIT:也读this question and answers关于默认值。

+0

我在哪里可以找到?非常感谢。 – 2012-07-31 04:59:25

+0

@Kris,你需要使用像phpmyadmin这样的工具编辑数据库结构。 – 2012-08-01 00:22:18

2

也许尝试运行SET GLOBAL的sql_mode =“”或修改您的my.cnf,以确保你不设置STRICT_ALL_TABLES等。 Yii问题