如果我使用 NULL 值从MySQL数据库中获取结果,那么PHP将其作为 string 值使用。测试空值是返回FALSE和 echo 返回 NULL
$stmt = $mysqli->prepare("SELECT `activation`
FROM `authentication`
WHERE `mail`=?");
$stmt->bind_param('s', $mail);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$stmt->close();
if (is_null($result)) {
echo 'is NULL';
} else echo 'not NULL';
从此示例返回将 not NULL 但我希望为NULL
答案 0 :(得分:0)
$sql = "SELECT `activation`
FROM `authentication`
WHERE `mail` ";
if (!is_null($mail) {
$stmt = $mysqli->prepare($sql);
$sql .= " = ?";
$stmt->bind_param('s', $mail);
}
else {
$stmt = $mysqli->prepare($sql);
$sql .= " ?";
$stmt->bind_param('s', 'IS NULL');
}
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$stmt->close();
if (is_null($result)) {
echo 'is NULL';
} else echo 'not NULL';
如果我没有误将连接到字符串的空值产生没有输出,那么你必须明确地说IS NULL
另外
mysql中的语句不相同
select * from config where description = null;
Empty set (0.00 sec)
和
select * from config where description is null;
18 rows in set (0.00 sec)
答案 1 :(得分:0)
问题在于保存在数据库中的值。我做UPDATE记录,现在它正在工作。 谢谢你的帮助!