[英]Detect null column value in PHP mysqli
我有一个使用mysqli查询数据库的php项目。 此数据库中的某些列可以为null。 我的代码看起来像这样:
$query = "...";
$result = $DB->query($query);
$row = $result->fetch_assoc();
$column = $row['mycolumn'];
如果mycolumn
为null,则$column
的值显示为字符串"NULL"
(不是空值,但实际上是包含单词“NULL”的字符串)。 那么如果我的列实际上有字符串"NULL"
发生什么呢? 我该如何区分?
谢谢! 玩笑
编辑:仔细检查后,发现该字符串实际上是5个字符的字符串。 前四个字符为"NULL"
,但最后一个字符为0x0d,回车。 这使得它更容易被发现,尽管我仍然很好奇,如果没有比只进行字符串比较更少的hack-y方式。
使用if
条件检查===
if($row['mycolumn'] === null) {
echo 'Real Null';
} elseif($row['mycolumn'] == '') {
echo 'Blank';
}
你看错了路。 而不是试图检测错误的 NULL值,你必须找出它为什么是错误的并纠正它。
因此,您需要找到自己的代码,以便在写入或读取时将NULL值转换为“ NULL \\ n”字符串。 您使用原始mysqli作为$ DB还是一种抽象类? 如果是这样-我会说问题出在那儿。
之后,你可以很容易地读取NULL值,严格比较===
如其他答案中所建议的那样(虽然我不确定libmysql的安装)。
似乎该列的数据类型为字符串。
如果是字符串,
我们可以通过以下检查
if($row['mycolumn'] == '' || is_null($row['mycolumn']))
{
echo "Coulmn is NULL value";
}
else if($row['mycolumn'] == "NULL")
{
echo "Coulmn is NULL value as string";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.