我使用Zend Framework 1.7.2,MySQL和MySQLi PDO適配器。我想在給定的操作中調用多個存儲過程。我發現在Windows上有一個調用多個存儲過程的問題。如果你嘗試,你會收到以下錯誤信息:使用Zend Framework調用多個存儲過程
SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
我發現,要解決這個問題,我可能只是接近一個存儲過程在每次通話後連接到數據庫:
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
//If on windows close the connection
$db->closeConnection();
}
這對我來說很好,但是,現在我想調用事務中包裝的多個存儲過程。當然,在這種情況下關閉連接並不是一種選擇,因爲它會導致打開的事務回滾。任何想法,如何解決這個問題和/或解決這個問題。
非常感謝,我一直在使用超過6個月的醜陋解決方法。我只是放棄了在沒有存儲過程的情況下進行復雜的刪除操作,然而,現在我又恢復了業務。再次感謝。 – 2009-01-31 21:05:31