2013-07-18 146 views
0

我使用PDO運行MSSQL存儲過程很多,但偶爾會遇到存儲過程無法正常運行的問題。運行MSSQL的PHP​​ PDO存儲過程

目前,我有一個相當複雜的存儲過程,包括各種插入臨時表和嵌套循環語句。當我從他們的SQL管理器執行存儲過程時,它運行良好。大約需要1.5分鐘才能完成,但沒有問題就完成了。

問題是,當我從PHP運行它是這樣的:

$q = $dbh->prepare('exec sp_mysp'); 
$q->execute(); 

我檢查了$q->errorInfo();,並沒有錯誤,但該過程不完整。它看起來像是在存儲過程的嵌套循環中間傾倒出來的。

存儲過程在使用PDO從PHP調用時可以執行的操作有什麼限制嗎?另外,是否有一個很好的方法來調試,因爲我卡住了。

任何幫助,這將是偉大的。

謝謝!

+0

我認爲什麼包含存儲過程是問題,而不是你如何執行從PHP。爲了修復它,嘗試單獨執行execute sql語句。 – user1929959

+0

存儲過程中的所有內容都可以正常運行。我可以部分運行它,或者我可以從MSSQL Management Studio運行整個存儲過程。它運行良好,但不是從PHP使用PDO執行時。謝謝 – Sequenzia

回答

0

我遇到了同樣的問題,我的Stored Proc通過SQL管理工作室執行得很好,但當我通過PHP使用PDO調用EXECUTE時沒有執行此問題。我沒有傳遞參數等

由於什麼原因,事實是我將值插入臨時表 - 只要我用實際的表替換臨時表,存儲過程就會執行正常。