クエリを実行しています
$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
に対して同じ値を返します。NULL
0
私も試しました:
$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
タイプを から に変更してからint
astring
をvar_dump
実行しても、まだ返される int(1)