1

クエリを実行しています

$Health = mssql_query("Select 
*
from
Health
where 
HEA_ID = '$HEA_ID'
");

次に、ここでフィールドの 1 つをキャプチャします。

$HEA_DocsOnFile = mssql_result($Health,0,'HEA_DocsOnFile');

フィールドHEA_DocsOnFilebit_sql server

HEA_DocsOnFileが aNULLか aかを知るにはどうすればよい0ですか?

残念ながら、と!mssql_resultに対して同じ値を返します。NULL0

私も試しました:

$HEA_DocsOnFile = is_null(mssql_result($Health,0,'HEA_DocsOnFile')) ? null : mssql_result($Health,0,'HEA_DocsOnFile');

に確実に設定$HEA_DocsOnFileするにはnull

後でチェックボックスが 0 で NOT NULL の場合は、次のようにチェックします。

<?php if($HEA_DocsOnFile===0)  { echo  'checked="checked"' ; }?>

実際にはnullですが(少なくともSQLサーバーが言うように)、チェックボックスをチェックして、0

マークの提案に従って更新 します。実行する代わりに、すべての列を明示的に選択しましたselect *

やった:

select
....
 ,[HEA_POLST]
      ,[HEA_MOST]
      ,[HEA_DNR]
      ,isnull(HEA_DocsOnFile,2) HEA_DocsOnFile
from...........

私はそれHEA_DocsOnFileが今であることを知っています2

ただし、テスト時:

<?php if($HEA_DocsOnFile==1)  { echo  'checked="checked"' ; }?>

それは実際にボックスをチェックします!

私は何を間違っていますか?

私は実際にaを実行var_dump($HEA_DocsOnFile);し、それが返されましたint(1)

それはどうしてですか?SQLサーバーではNULLです!!

私もしました:

select............
    ,isnull(HEA_DocsOnFile,'2') HEA_DocsOnFile

タイプを から に変更してからintastringvar_dump実行しても、まだ返される int(1)

4

3 に答える 3

-1

試す:

ISNULL ( HEA_DocsOnFile , NULL )
于 2013-06-20T18:30:06.617 に答える