2013-03-13 179 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會忽略整行,除非您先通過它。