PHP使用mssql_fetch_array返回NULL值
问题描述:
好吧,这对我来说很奇怪,但我希望这是一个发生的问题,我还没有找到在线解决方案。PHP使用mssql_fetch_array返回NULL值
帮助非常感谢。
我正在调用MS 2008 SQL服务器上的存储过程。使用SQL Server Management Studio,我们可以验证此过程是否正常工作。
我写了一个基本脚本,它抓住每一行并执行它的print_r。
现在是奇怪的部分。对于任何具有NULL条目的行(即使只有一列),PHP都没有得到它,行被排除在外,对于其他所有其他行都没有问题。所以,如果我回去并手动更改NULL条目并将文本放在那里,它们就会显示出来。
因此,基本上,这是一个允许为NULL的列,当它为NULL时,在PHP中没有任何数据明确表示该行(它被省略)。但是,如果你然后进入并手动添加一些东西,它就不会出现问题。
根据phpinfo我使用的连接器是免费的TDS。
答
这是什么固定对我来说:
集ANSI_NULL_DFLT_ON ON
我必须查询此先调用任何存储过程
$result = mssql_query('set ANSI_NULL_DFLT_ON ON');
希望帮助的人谁了我的问题之前。这真是令人沮丧,显然你需要这个,所以PHP将返回行中有空列的行,并且它与存储过程中的比较有关。我相信在比较可能具有NULL值的东西时,PHP会忽略整行,除非您先通过它。
你想让PHP给你一个空行的发明价值?你期待它打印什么? – 2013-03-13 00:15:28
没关系,行不为空,行中有值。只有这一行中的一列是空的,因此我没有返回任何东西。假设我有5行,所有行都有数据,除了第2行有一列是空的。 PHP上会发生什么,我只返回4行。 – user1399840 2013-03-13 16:52:28