2013-03-13 178 views
0

好吧,这对我来说很奇怪,但我希望这是一个发生的问题,我还没有找到在线解决方案。PHP使用mssql_fetch_array返回NULL值

帮助非常感谢。

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

我写了一个基本脚本,它抓住每一行并执行它的print_r。

现在是奇怪的部分。对于任何具有NULL条目的行(即使只有一列),PHP都没有得到它,行被排除在外,对于其他所有其他行都没有问题。所以,如果我回去并手动更改NULL条目并将文本放在那里,它们就会显示出来。

因此,基本上,这是一个允许为NULL的列,当它为NULL时,在PHP中没有任何数据明确表示该行(它被省略)。但是,如果你然后进入并手动添加一些东西,它就不会出现问题。

根据phpinfo我使用的连接器是免费的TDS。

+0

你想让PHP给你一个空行的发明价值?你期待它打印什么? – 2013-03-13 00:15:28

+0

没关系,行不为空,行中有值。只有这一行中的一列是空的,因此我没有返回任何东西。假设我有5行,所有行都有数据,除了第2行有一列是空的。 PHP上会发生什么,我只返回4行。 – user1399840 2013-03-13 16:52:28

回答

0

这是什么固定对我来说:

集ANSI_NULL_DFLT_ON ON

我必须查询此先调用任何存储过程

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

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