Php 使用PDO和dblib驱动程序的Zend tablegateway没有结果
希望有人能让我看起来很傻。这个问题阻碍了我。我一直在本地WAMP堆栈上开发一个web应用程序。我一直在使用sqlsrv PDO驱动程序,一切都运行得非常好。我将我的应用程序发布到使用PDO dblib驱动程序的Ubuntu 10.04服务器上。大多数站点都可以工作,但我有一个查询,如果resultset被缓冲,它将只返回一条记录。如果未缓冲,则不会显示任何结果。如果我使用PDO运行查询,它就会工作。如果使用Zend TableGateway进行查询,则结果不在那里。有什么想法吗?第一个映像是记录的工作显示,第二个映像是\Zend\Debug\Debug::dump()的问题Php 使用PDO和dblib驱动程序的Zend tablegateway没有结果,php,sql-server-2005,pdo,zend-framework2,Php,Sql Server 2005,Pdo,Zend Framework2,希望有人能让我看起来很傻。这个问题阻碍了我。我一直在本地WAMP堆栈上开发一个web应用程序。我一直在使用sqlsrv PDO驱动程序,一切都运行得非常好。我将我的应用程序发布到使用PDO dblib驱动程序的Ubuntu 10.04服务器上。大多数站点都可以工作,但我有一个查询,如果resultset被缓冲,它将只返回一条记录。如果未缓冲,则不会显示任何结果。如果我使用PDO运行查询,它就会工作。如果使用Zend TableGateway进行查询,则结果不在那里。有什么想法吗?第一个映像是记录
更新:我确定问题在于我在控制器中查询表并将其发送到视图,但在视图中,我有一个视图辅助对象命中同一个表。dblib驱动程序似乎没有适当地处理异步调用,视图助手正在切断控制器的查询。关于DB/Server配置修复有什么想法吗?如果没有,我想我需要重新编码实现。正在使用的FreeTDS驱动程序不是线程安全的。要修复此问题,每个返回的结果集都会立即馈送到本地数组中:
$resultSet = $this -> tableGateway -> selectWith ( $select );
$results = array();
foreach($resultSet as $r)
{
$results[] = $r;
}
return $results;
这可以防止数据库连接相互干扰