使用php中三个查询中的第一个的插入id


Using an insert id from first of three queries in php

我想将几个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:这是一个伪代码!