希望有人能让我看起来很傻。这个问题阻碍了我。我一直在本地WAMP堆栈上开发Web应用程序。我一直在使用sqlsrv PDO驱动程序,一切都运行得非常好。我将我的应用程序发布到使用PDO dblib驱动程序的Ubuntu 10.04服务器。该网站的大部分工作,但我有一个查询,如果结果集被缓冲,将只返回一个记录。如果没有缓冲,则不会显示任何结果。如果我使用PDO运行查询,它可以工作。如果我使用Zend TableGateway查询结果不存在。有什么想法吗?第一个图像是记录的工作显示,第二个图像是\ Zend \ Debug \ Debug :: dump()的问题。
更新:我确定问题是我在控制器中查询表并将其发送到视图,但在视图中我有一个视图帮助器命中同一个表。似乎dblib驱动程序没有正确处理异步调用,并且视图助手正在切断控制器的查询。有关DB / Server配置修复的任何想法?如果不是,我想我可以重新编写实现代码。
答案 0 :(得分:0)
正在使用的FreeTDS驱动程序不是线程安全的。要修复,每个返回的resultSet会立即送入本地数组:
$resultSet = $this -> tableGateway -> selectWith ( $select );
$results = array();
foreach($resultSet as $r)
{
$results[] = $r;
}
return $results;
这可以防止数据库连接相互干扰。