Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PDO和dblib驱动程序的Zend tablegateway没有结果_Php_Sql Server 2005_Pdo_Zend Framework2 - Fatal编程技术网

Php 使用PDO和dblib驱动程序的Zend tablegateway没有结果

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进行查询,则结果不在那里。有什么想法吗?第一个映像是记录

希望有人能让我看起来很傻。这个问题阻碍了我。我一直在本地WAMP堆栈上开发一个web应用程序。我一直在使用sqlsrv PDO驱动程序,一切都运行得非常好。我将我的应用程序发布到使用PDO dblib驱动程序的Ubuntu 10.04服务器上。大多数站点都可以工作,但我有一个查询,如果resultset被缓冲,它将只返回一条记录。如果未缓冲,则不会显示任何结果。如果我使用PDO运行查询,它就会工作。如果使用Zend TableGateway进行查询,则结果不在那里。有什么想法吗?第一个映像是记录的工作显示,第二个映像是\Zend\Debug\Debug::dump()的问题


更新:我确定问题在于我在控制器中查询表并将其发送到视图,但在视图中,我有一个视图辅助对象命中同一个表。dblib驱动程序似乎没有适当地处理异步调用,视图助手正在切断控制器的查询。关于DB/Server配置修复有什么想法吗?如果没有,我想我需要重新编码实现。

正在使用的FreeTDS驱动程序不是线程安全的。要修复此问题,每个返回的结果集都会立即馈送到本地数组中:

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

$results = array();

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

return $results;
这可以防止数据库连接相互干扰