如何防止由于Zend DB适配器中的mssql SET语句导致的意外结果集

时间:2017-04-12 08:25:46

标签: php sql-server zend-framework zend-db

我有下面的示例代码,它返回两个结果集,其中一个总是为空,而如果它在查询浏览器中单独运行,则只产生一个结果集。我使用SQL-SERVER作为DB。

后来我发现具有SET语句的sql查询总是给出第一个空结果集,否则它给出一个结果集。

<?php 

$sql = "DECLARE @a nvarchar(100);
        SET @a = 1;
        SELECT TOP 1 * from employee where id = @a;
       ";

$db = Zend_Registry::get('dbAdapter'); //Object of Zend_Db_Adapter
$statement = $db->query($sql);

// Loop through each resultsets
do 
    $rows = $statement->fetchAll();
    print_r($rows);
} while ($statement->nextRowset());
?>

任何人都可以帮助我,这样我只会得到一个结果集而不管我是否使用过SET语句? 如果我写了多个SELECT语句,我也想要多个结果集。

如果在使用SET的情况下我们无法阻止空结果集,那么最佳解决方案是什么呢?

0 个答案:

没有答案