插入数据库外键报错 [ 2.0 版本 ]
Yii在插入数据时报错SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails 上网查得知是:外键与外键对应的表的主键值不匹配。问题是我的内容是匹配的,我在phpMyadmin 里用相同数据插入一遍,成功了。说明数据库的外键设置没问题,但不知Yii里为什么会报错?请教一下,谢谢!
最佳答案
-
看你的 sql 语句,event 这个表 你只插入了 createtime 和 updatetime 这两个字段,根本就 没有 departmentid 这个字段,作为 外键,这 肯定是 不行的
不知道你在 phpMyAdmin 里执行的 sql 语句是 什么样的,想来 肯定不是 只有 createtime 和 updatetime 这两个字段共 2 条回复在phpMyAdmin中插入时,语句包含各个字段(肯定不止createtime 和 updatetime 这两个字段),是完整的,可以正常插入。而且在phpMyAdmin中,如果不用语句插入,用填表方式插入的话,设置了外键的字段都有下拉菜单,直接点就行,也能完整插入。在Yii框架中插入时,createtime 和 updatetime 这两个字段是在Yii模型文件的public function beforeSave($insert)中插入的。现在的问题是为什么在php?r=event%2Fcreate界面,也就是views\event\create.php这个界面插入时,会出问题(接收不到数据)?我尝试在phpMyAdmin中插入一行数据,然后在Yii的view、update界面中都可查看,修改。既然能修改,为什么插入会有问题?
其他 0 个回答
☣特种使者☣
最后登录:2019-12-15
在线时长:2小时10分
- 粉丝0
- 金钱50
- 威望0
- 积分70