0

これは私にとって奇妙ですが、これが発生した問題であり、オンラインで解決策をまだ見つけていないことを願っています.

助けていただければ幸いです。

MS 2008 SQL サーバーでストアド プロシージャを呼び出しています。SQL Server Management Studio を使用して、この手順が正しく機能していることを確認できます。

各行を取得して print_r を実行する基本的なスクリプトを作成しました。

さて、奇妙な部分です。NULL エントリを持つ行 (たとえ 1 つの列であっても) は、PHP は単純にそれを取得せず、その行は除外され、他のすべてのエントリは問題なく入力されます。したがって、戻って手動で NULL エントリを変更し、そこにテキストを入力すると、それらが表示されます。

したがって、基本的に、私が持っているこの1つの列はNULLにすることができます.NULLの場合、PHPではその行のデータに関して何も表示されません(省略されます)。しかし、その後で手動で何かを追加しても問題はありません。

phpinfo によると、私が使用しているコネクタは Free TDS です。

4

1 に答える 1

0

これは私のためにそれを修正しました:

ANSI_NULL_DFLT_ON をオンに設定

ストアドプロシージャを呼び出す前に、これを最初にクエリする必要がありました

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

私の問題を抱えていた人に役立つことを願っています。どうやらこれが必要なので、PHP は null 列を含む行を返し、ストアド プロシージャ内の比較と関係があります。NULL 値を持つ可能性のあるものを比較するときだと思います。これを最初に渡さない限り、PHP は行全体を無視します。

于 2013-03-19T18:15:35.150 に答える