Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP mysqli中检测空列值_Php_Mysql_Mysqli - Fatal编程技术网

在PHP mysqli中检测空列值

在PHP mysqli中检测空列值,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个php项目,它使用mysqli查询数据库。此数据库中的某些列可以为null。我有这样的代码: $query = "..."; $result = $DB->query($query); $row = $result->fetch_assoc(); $column = $row['mycolumn']; 如果mycolumn为null,则$column的值将显示为字符串“null”(不是null值,而是包含单词“null”的字符串)。那么,如果我的列中实际包含字符串“NULL

我有一个php项目,它使用mysqli查询数据库。此数据库中的某些列可以为null。我有这样的代码:

$query = "...";
$result = $DB->query($query);
$row = $result->fetch_assoc();
$column = $row['mycolumn'];
如果
mycolumn
为null,则
$column
的值将显示为字符串
“null”
(不是null值,而是包含单词“null”的字符串)。那么,如果我的列中实际包含字符串
“NULL”
,会发生什么呢?我如何区分

谢谢! 乔希

编辑:
仔细检查后,该字符串似乎实际上是一个5个字符的字符串。前4个字符是
“NULL”
,但最后一个字符是0x0d,即回车符。这使得检测变得更容易,尽管我仍然好奇是否有比仅仅进行字符串比较更简单的方法。

使用
if
条件检查
=

if($row['mycolumn'] === null) {
   echo 'Real Null';
} elseif($row['mycolumn'] == '') {
   echo 'Blank';
}

该列的数据类型似乎为字符串

如果是字符串

我们可以通过以下方式进行检查

if($row['mycolumn'] == '' || is_null($row['mycolumn']))
{
    echo "Coulmn is NULL value";
}
else if($row['mycolumn'] == "NULL")
{
    echo "Coulmn is NULL value as string";
}

你看错方向了。不要试图检测错误的空值,你必须找出错误的原因并纠正它

Mysql和mysqli都不会为空值返回文本字符串“NULL”。 因此,您需要找到自己的代码,在写入或读取时将NULL值转换为“NULL\n”字符串。您是使用原始mysqli作为$DB还是它是一种抽象类?如果是这样的话,我会说问题就在那里


之后,您可以轻松地通过严格比较读取空值,正如其他答案中所建议的那样(尽管我不确定libmysql的安装情况)。

您应该在查询中尝试“注意:此函数将空字段设置为PHP空值”。因此问题是PHP中的错误或其他地方的问题。或者可能是在2013年,但现在已修复。
$row['mycolumn']
实际上是字符串“NULL”,而不是NULL值。是否要获取查询以获取该列具有NULL值的行?关闭。在我的结果集中,我希望能够分辨出MySQL意义上的空字段和内容为字符串“null”的字段之间的区别。
$row['mycolumn']
实际上是字符串,“null”,而不是空值。因此,如果($row['mycolumn']=“null”){echo'string null;}@mr alien,我明白了。我的问题是mysql数据库对空值返回“NULL”。如果我想要一个值为“NULL”的字符串条目,这会导致问题,因为我无法从PHP中分辨两者之间的区别。事实上,这并不是一个大问题(请参阅我对文章的最后一次编辑),但如果我不想在数据库中存储实际的单词“NULL”,那么不必进行字符串比较还是很好的。@joshlf13您没有得到正确的条件,还有-1的解释吗?谁投了票?@Mr.Alien社区对错误答案投了反对票。昨天我也得了-1分。