クエリを実行しています
$Health = mssql_query("Select
*
from
Health
where
HEA_ID = '$HEA_ID'
");
次に、ここでフィールドの 1 つをキャプチャします。
$HEA_DocsOnFile = mssql_result($Health,0,'HEA_DocsOnFile');
フィールドHEA_DocsOnFileはbit_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
タイプを から に変更してからintastringをvar_dump実行しても、まだ返される int(1)