2012-02-16 66 views
1

我正在使用PDO訪問我的數據庫,並且我有兩個存儲過程。 現在,我執行調用的程序,這是工作的罰款,這樣的事情:使用php PDO調用多個存儲過程

$q = $db->prepare("CALL sp1();"); 
$q->execute; 
//parsing results here... 

$q->closeCursor(); 

$q2 = $db->prepare("CALL sp2();"); 
$q2->execute; 
///parsing results here... 

我想打電話給一個兩個程序做準備,所以我想是這樣 -

$q = $db->prepare("CALL sp1(); CALL sp2()"); 
$q->execute; 

但是這只是調用和執行一個存儲過程,而不是兩個。 有沒有辦法使用和立即運行多個程序?

+2

潛在的mysql驅動程序不允許在單個查詢調用中發出多個查詢。這是防止某些形式的SQL注入的安全措施。即使您使用PDO,這仍然適用。 – 2012-02-16 14:07:47

+3

真的,如果它們必須一起運行,最好的行動方案是創建另一個在交易中自己調用它們的過程。 – 2012-02-16 14:08:50

回答

2

一個查詢只能運行一個storedProcedure。

如果您仍然只需要運行一個查詢,那麼我建議您編寫另一個storedProcedure,它會一個接一個地調用它們。