PHP/MySQL检查null
我很好奇,在我的示例中,我检查字段的值是1还是2,但是如何检查它的值是NULL。是以下三种情况之一:PHP/MySQL检查null,php,mysql,null,Php,Mysql,Null,我很好奇,在我的示例中,我检查字段的值是1还是2,但是如何检查它的值是NULL。是以下三种情况之一: $sql = 'SELECT * FROM `phpbb_profile_fields_data`'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($row['pf_kp_em_no_bonethr'] == '1') { ech
$sql = 'SELECT * FROM `phpbb_profile_fields_data`';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
if ($row['pf_kp_em_no_bonethr'] == '1') {
echo " Was 1";
} else if ($row['pf_kp_em_no_bonethr'] == '2') {
echo "Was 2";
} else {
echo "Was Neither 1 or 2";
}
}
$db->sql_freeresult($result);
正常情况下,我会尝试一下,但我不在家,在可预见的未来也不会,这一直困扰着我。我很确定这不是第二个,但我已经看到-1在其他语言中用于空值。那么,有人能验证我是如何检查空值的吗
if ($row['pf_kp_em_no_bonethr'] == '')
if ($row['pf_kp_em_no_bonethr'] == '-1')
if ($row['pf_kp_em_no_bonethr'] == 'NULL')
if ($row['pf_kp_em_no_bonethr'] === NULL)
MySQL将以实际PHP
NULL
的形式向PHP返回NULL值。在这种情况下,您需要的是:
if (is_null($row['pf_kp_em_no_bonethr'])) {
echo "Is NULL";
}
但是,如果在PHP中需要使用NULL值,则在查询中检查它更合适
// Notice lack of quotes around NULL
// And use === to distinguish type properly between integer 0 and NULL
if ($row['pf_kp_em_no_bonethr'] === NULL)
或查找所有三个值:
$sql = 'SELECT * FROM `phpbb_profile_fields_data` WHERE pf_kp_em_no_bonethr IS NULL';
我建议你非常认真地对待这一点:我已经看到了
$sql = 'SELECT * FROM `phpbb_profile_fields_data`
WHERE pf_kp_em_no_bonethr IS NULL
OR pf_kp_em_no_bonethr IN (1,2)
';
以及由此产生的简单空检查。使用or==null
SELECT
IFNULL(fieldname,'some_safe_value') AS fieldname
...
FROM
...
或
您是否尝试过使用实际值
null
而不是字符串'null'
?pherhaps:is\u null($row['pf\u kp\u em\u no\u bonethr'])
可能与我读过的关于is\u null的内容相同,但无法完全理解如何实现它。谢谢你澄清。我不知道===运算符。它的目的是什么?一些人似乎推荐===NULL的想法,这真的会导致问题吗?如果不是因为糟糕的经验,我也会推荐它。我个人看到DB-NULL字段是作为空字符串给出的,而不是Windows安装中的PHP-NULL。在您提问之前:我对查询进行了三次检查,在安装过程中,针对物理上相同的DB给出了一个PHP-NULL。似乎是客户端版本的属性。
SELECT
IFNULL(fieldname,'some_safe_value') AS fieldname
...
FROM
...
if(is_null($row['pf_kp_em_no_bonethr'])){
}
if($row['pf_kp_em_no_bonethr'] === NULL){
}