2013-10-30 63 views
0

希望有人能讓我看起來很傻。這個問題困擾着我。我一直在本地WAMP堆棧上開發Web應用程序。我一直在使用sqlsrv PDO驅動程序,一切都很好用。我將我的應用程序發佈到使用PDO dblib驅動程序的Ubuntu 10.04服務器上。該網站的大部分工作,但我有一個查詢,如果結果集被緩衝,將只返回一個記錄。如果沒有緩衝,則不會顯示結果。如果我使用PDO運行查詢,它可以工作。如果我用Zend TableGateway查詢,結果不存在。有什麼想法嗎?第一個圖像是記錄的工作顯示,第二個是\ Zend \ Debug \ Debug :: dump()的問題。沒有Zend tablegateway使用PDL和dblib驅動程序的結果

Working display

Not working display with a \Zend\Debug\Debug::dump()

更新:我決定的問題是,我查詢表控制器,並把它發送到視圖,但在視圖中我有一個視圖助手擊中同一個表。似乎dblib驅動程序沒有正確處理異步調用,並且視圖幫助器正在切斷控制器的查詢。任何關於DB/Server配置修復的想法?如果沒有,我想我會重新編碼實施。

回答

0

正在使用的FreeTDS驅動程序不是線程安全的。要修正,每個返回的結果集立即送入本地陣列:

$resultSet = $this -> tableGateway -> selectWith ($select); 

$results = array(); 

foreach($resultSet as $r) 
{ 
    $results[] = $r; 
} 

return $results; 

這防止相互干擾的數據庫連接。

相關問題