0

好的,这对我来说很奇怪,但我希望这是一个已经发生的问题,我还没有在网上找到解决方案。

非常感谢您的帮助。

我正在调用 MS 2008 SQL 服务器上的存储过程。使用 SQL Server Management Studio,我们可以验证此过程是否正常工作。

我编写了一个基本脚本,它抓取每一行并对其进行 print_r。

现在是奇怪的部分。对于任何具有 NULL 条目的行(即使只有一列),PHP 根本无法获取它,该行被忽略,对于所有其他行它们都很好。因此,如果我返回并手动更改 NULL 条目并将文本放在那里,它们就会显示出来。

所以基本上,我拥有的这一列允许为 NULL,当它为 NULL 时,PHP 中该行(它被遗漏)的数据不会出现。但是,如果您随后进入并手动添加一些内容,则显示没有问题。

根据 phpinfo,我使用的连接器是 Free TDS。

4

1 回答 1

0

这为我解决了这个问题:

将 ANSI_NULL_DFLT_ON 设置为 ON

在调用任何存储过程之前,我必须先查询这个

$result = mssql_query('set ANSI_NULL_DFLT_ON ON');

希望对遇到我问题的人有所帮助。这真的很令人沮丧,显然你需要这个,所以 PHP 将返回其中包含空列的行,并且它与存储过程中的比较有关。我相信在比较可能具有 NULL 值的东西时,PHP 会忽略整行,除非你先通过它。

于 2013-03-19T18:15:35.150 回答