如果是这种情况,我建议您使用一个临时变量来存储
我想将几个curl调用的数据存储到一个初始表中,但是最后一个insert id插入错误的信息
查询1将数据插入表
table1
id name email valuereturn
1 val val@email.com 0
然后我将数据发布3次到我的系统并记录它
表
id name system valuereturn
1 val 5 0
2 val 0 0
3 val 0 0
我想更新表1
update table1
set valuereturn = '5'
where id = LAST_INSERT_ID()
不工作,因为最后插入id是3从表2,我怎么能使用像last_insert_id(Table1)
?
我想更新我的
你不能。您必须在PHP变量中检索并记住它。
或者使用sarharsh的解决方案并将其记在MySQL变量中。
将表1的LAST_INSERT_ID()存储在一个变量中,然后在更新查询中使用该变量。
INSERT INTO table1(name) values ('Saharsh');
SELECT LAST_INSERT_ID() INTO @table1Id;
INSERT INTO table2(name, table1id) values ('Saharsh', @table1Id);
UPDATE table1 SET valuereturn = '5' WHERE id = @table1Id;
在PHP中,我假设您使用以下代码:
<?php
connect_db();
insert_first_query_to_table1();
insert_second_query_to_table2();
update_query_setting(last_insert_id());
?>
如果是这种情况,我建议您使用一个临时变量来存储last_insert_id
。
<?php
connect_db();
insert_first_query_to_table1();
$setVal = last_insert_id();
insert_second_query_to_table2();
update_query_setting($setVal);
?>
希望对你有帮助。
PS:这是一个伪代码!