Использование идентификатора вставки из первого из трех запросов в php

Я хочу сохранить данные из нескольких вызовов curl в исходную таблицу, но последний идентификатор вставки вставляет неверную информацию

Запрос 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()

не работает, потому что последний идентификатор вставки 3 из таблицы 2, как я могу использовать что-то вроде last_insert_id(Table1)?

я хочу обновить мой

3 ответа

Решение

Ну, ты не можешь. Вы должны извлечь и запомнить его в переменной PHP.

Или воспользуйтесь решением Saharsh и запомните его в переменной MySQL.

Сохраните этот LAST_INSERT_ID() таблицы table1 в переменной и затем используйте эту переменную в запросе на обновление.

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: это псевдокод!

Другие вопросы по тегам