PDO - получение значения переменной из транзакции? - PullRequest
0 голосов
/ 15 сентября 2011

Учитывая следующий блок кода:

$q = "
BEGIN;
DECLARE User_ID int
INSERT INTO user (field1,field2) values (value1,value2);
set User_ID = select LAST_INSERT_ID();
INSERT INTO table2 (field1,field2) values (value1,LAST_INSERT_ID());
select User_ID
COMMIT;";

$sth = PDO::prepare($q);
$sth->execute();

Как, черт возьми, я могу получить значение "User_ID"?fetch и fetchAll просто возвращают пустые массивы, и в процессе не возникает никаких ошибок

EDIT 1 Извините, должно было быть более ясным ... перед возвратом есть второй оператор INSERTРезультаты.

1 Ответ

1 голос
/ 15 сентября 2011

$ q = " НАЧАТЬ; ОБЪЯВИТЬ User_ID int INSERT INTO пользовательские (field1, field2) значения (value1, value2); set User_ID = select LAST_INSERT_ID (); INSERT INTO table2 (field1, field2) значения (value1, LAST_INSERT_ID () - 1); выберите User_ID COMMIT; ";

$ sth = PDO :: prepare ($ q); $ Sth-> Execute ();

...