“CDbCommand无法执行SQL语句:SQLSTATE [23000]:”书中的示例

时间:2013-08-16 13:03:05

标签: php yii mysql-error-1452

美好的一天! 面对这样的问题,在创建问题(http://test.com/book/ima/index.php?ssue/create&pid=1)时会出现此错误:

CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`trackstar`.`tbl_issue`, CONSTRAINT `fk_issue_owner` FOREIGN KEY (`owner_id`) REFERENCES `tbl_user` (`id`) ON DELETE CASCADE). The SQL statement executed was: INSERT INTO `tbl_issue` (`project_id`, `name`, `description`, `type_id`, `status_id`, `owner_id`, `requester_id`, `create_time`, `create_user_id`, `update_time`, `update_user_id`) VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5, :yp6, :yp7, :yp8, :yp9, :yp10)

/var/www/yii/framework/db/CDbCommand.php(357)

345         {
...

我试着这样做: http://www.yiiframework.com/forum/index.php/topic/11953-cdbcommand-failed-to-execute-the-sql-statement-sqlstate23000-integrity-constraint-violation/

 public function rules()
{
    // NOTE: you should only define rules for those attributes that
    // will receive user inputs.
    return array(
        array('name, project_id', 'required'),
        .....
        ........
    );
}

它不起作用。 帮助解决问题,我想进一步研究,但因为它我不能。

1 个答案:

答案 0 :(得分:3)

根据您提供的link和错误,违规行为可能是由于:

The user_id attempting to be inserted is not associated with a valid tbl_user.id value in the tbl_user table.

错误信息显而易见。您尝试在tbl_issue中插入一条包含user_id上不存在的外键tbl_user的记录。