Php 如何随主键一起自动更新外键

Php 如何随主键一起自动更新外键,php,mysql,Php,Mysql,表1:客户信息 c_id(primary key) AUTO INCREMENT c_name c_phone (innoDB) 表2:服务 si_id(primary key) AUTO INCREMENT c_id2(foreign key) references customer_details(c_id) on delete cascade on delete update si_1 si_2 si_3 si_4 si_5 (innoDB) 我已经编写了php代码来更新,以便在tab

表1:客户信息

c_id(primary key) AUTO INCREMENT
c_name
c_phone
(innoDB)
表2:服务

si_id(primary key) AUTO INCREMENT
c_id2(foreign key) references customer_details(c_id) on delete cascade on delete update
si_1
si_2
si_3
si_4
si_5
(innoDB)
我已经编写了php代码来更新,以便在table2service的si_1、si_2、si_3、si_4、si_5中插入值

每当我通过html页面向表2中插入值时,我都会得到一个错误,即 错误:无法添加或更新子行:外键约束失败

下面是我的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);
试试这个:

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

您应该将si_id保留在列列表之外,以便通过自动递增自动分配。您需要将c_id2设置为分配给引用表的ID。

我假设在$value1声明上方,您有一个插入到customer details表中的查询?我很惊讶您会收到外键错误。我认为您应该得到一个语法错误,因为列列表中有$value1,其中c_id2应该是。@bamar是的,必须是c_id2,我已经更改了它,但agian得到了相同的错误。@lee是的,但得到了错误。