Таблица table1 поля id,name,....еще поля Таблица table2 поля id,name,....еще поля,table1_id - Транзакция: begin; INSERT INTO table1 SET name='Ivan'; -- надо получить lastinsertid, как это сделать? UPDATE table2 SET table1_id=[lastinsertid] WHERE name='Ivan'; commit;
Дополнен 2 года назад
$name = 'ivan'; $pdo->beginTransaction(); $pdo->exec('INSERT INTO test1 SET name="'.$name.'";'); $pdo->exec('UPDATE test2 SET test1_id=(SELECT LAST_INSERT_ID()) WHERE name="'.$name.'";'); $pdo->commit();
и нашел $name = 'ivan'; $pdo->beginTransaction(); $pdo->exec('INSERT INTO test1 SET name="'.$name.'";'); $pdo->exec('UPDATE test2 SET test1_id=(SELECT LAST_INSERT_ID()) WHERE name="'.$name.'";'); $pdo->commit();
Если пострес, то можно написать так: INSERT INTO table(...) VALUES (...) RETURNING table.id INTO smth; Возможно, что это уже и в стандарте SQL есть - проверьте сами.
Таблица table2 поля id,name,....еще поля,table1_id
-
Транзакция:
begin;
INSERT INTO table1 SET name='Ivan';
-- надо получить lastinsertid, как это сделать?
UPDATE table2 SET table1_id=[lastinsertid] WHERE name='Ivan';
commit;