外键还没有与主键一起更新?

时间:2014-01-22 07:21:27

标签: php html mysql

我有两个表。

customer_details(c_id,c_name,c_phone) primary_key(c_id) ENGINE:innoDB AUTO  INCREMENT

service_initiation(c_id2,si_id,si_1,si_2,si_3,si_4,si_5) primary_key(si_id) AUTO INCREMENT and  ENGINE:innoDB foreign_key(c_id2) references customer_details(c_id) on delete cascade and on update cascade

但是我使用i通过html页面插入数据并使用php代码使用phpmyadmin将值插入数据库。

但是在将值插入表格时出现错误。

错误是:

  

向表中插入值时出错:无法添加或更新子行:外键约束失败(workshop_serviceservice_initiation,CONSTRAINT service_initiation_ibfk_1 FOREIGN KEY(c_id2 )REFERENCES customer_detailsc_id)ON UPETE CASCADE ON UPDATE CASCADE)。

以下是我的PHP代码:

$value1=mysql_insert_id();
$value2=$_POST['si_1'];
$value3=$_POST['si_2'];
$value4=$_POST['si_3'];
$value5=$_POST['si_4'];
$value6=$_POST['si_5'];


$query="insert into service_initiation(c_id2,si_id,si_1,si_2,si_3,si_4,si_5) values ('$value1','','$value2','$value3','$value4','$value5','$value6')";
 mysql_query($query);

1 个答案:

答案 0 :(得分:1)

  1. 您没有更新customer_details中的任何数据,因此不应更新外键。所以,你的头衔是误导性的。

  2. 当您将数据插入子表并获得此错误时,这意味着您尝试插入外键字段的值在父表中缺失。