Использование идентификатора вставки из первого из трех запросов в 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: это псевдокод!