1

我想将来自几个 curl 调用的数据存储到初始表中,但是最后一个插入 id 插入了错误的信息

查询 1 将数据插入表中

表格1

   id name      email      valuereturn
   1   val     val@email.com       0

然后我将数据发布到我的系统 3 次并记录下来

表2

    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()

不起作用,因为 table2 中的最后一个插入 id 是 3,我该如何使用类似的东西last_insert_id(Table1)

我想更新我的

4

3 回答 3

1

将 table1 的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;
于 2013-01-04T05:46:58.837 回答
1

好吧,你不能。您必须在 PHP 变量中检索并记住它。

或者选择 Saharsh 的解决方案并将其记住在MySQL变量中。

于 2013-01-04T06:23:22.307 回答
1

在 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:这是一个伪代码!

于 2013-01-04T06:27:12.823 回答