带有SqlServer存储过程的PHP PDO不会返回所有数据

|| 我已经获得了一个存储过程,该存储过程的名称如下:
SP_REPORT_HOME \'param1\',\'param2\',1
它执行一堆我不知道的代码,尽管它返回了我需要使用的一堆数据。它包含一些具有空值的字段,而其他字段则完全填充(请注意,整行不为空,只有一些字段) 好吧,我在Ubuntu 10.10计算机上使用PDO和PHP来获取该信息,我的getReport方法是:
public function getReport($empresa1, $empresa2, $num) {
    $ds = $this->connection->prepare(\'SP_REPORT_HOME ?,?,?\');
    $ds->bindParam(1, $empresa1, PDO::PARAM_STR, 4);
    $ds->bindParam(2, $empresa2, PDO::PARAM_STR, 4);
    $ds->bindParam(3, $num, PDO::PARAM_INT, 4);
    $ds->execute(); 
    return $ds->fetchAll();
}
$ this-> connection只是这样创建的PDO实例:
$this->connection = new PDO(
        \"dblib:host=IP:PORT;dbname=DBNAME\", 
        \"LOGIN\", 
        \"PASS\"
    );
该方法返回包含数据的数组,但不包含包含空字段的行,有人知道为什么它不显示这些行吗?我真的很需要他们 我正在使用PHP5.3和SQLServer 2008     
已邀请:
请访问http://php.net/manual/en/pdo.setattribute.php以获得ATTR_ORACLE_NULLS设置。我猜想调整此设置将获得您想要的输出。     
好吧,最后是程序上的错误,尽管确实很奇怪。 该过程在其步骤之一中将创建一个临时表并插入所需的数据。在我们在这里使用的其他系统(使用Java内置)中,该过程运行良好,完全没有错误,并且所有数据都在那里。对于SQL Server Management Studio也是如此,没有查询错误。 虽然在php中插入失败,因为它创建的表不包含空字段(尽管据说这样做并非如此)。我发现这尝试使用mssql方式进行连接和查询。在$ connection-> query()调用中,它显示一个插入错误,表示我试图在一个非null字段中插入null。虽然没有停止脚本。结果中没有带空字段的行。 pdo版本可能有相同的问题,但是抑制了错误消息。 好吧,我们更改了过程,以便表创建指示空字段,但是仍然不知道为什么它在所有其他系统中都起作用,而在php中,这些字段使用了另一个默认值...     

要回复问题请先登录注册