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

最後の挿入 ID が table2 の 3 であるため、機能しませんlast_insert_id(Table1)

更新したい

4

3 に答える 3

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 に答える
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 に答える