2011-09-15 94 views
0

考慮下面的代碼塊:PDO - 從事務中檢索變量值?

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

如何赫克做我retreive值「USER_ID」?提取和使用fetchall只是返回空數組,並且沒有在這個過程中

編輯1對不起,本來應該更清晰......還有第二個INSERT語句,返回結果之前引發的錯誤。

回答

1

$ Q =「 BEGIN; DECLARE USER_ID詮釋 INSERT INTO用戶(FIELD1,FIELD2)值(值1,值2); 組USER_ID =選擇LAST_INSERT_ID(); INSERT INTO表2(FIELD1,FIELD2)值(value1,LAST_INSERT_ID() - 1); select User_ID COMMIT;「;

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

+0

爲您的引擎提供支持 –

+0

抱歉,應該已經更清楚了......在返回user_id之前有第二個INSERT子句...因此設置變量值而不是僅僅使用PDO的版本來獲取它。 –

+0

好的,你需要使用一個交易,然後 –