如何从dbs中获取NULL

时间:2013-12-10 21:28:51

标签: php mysql

如果我使用 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

2 个答案:

答案 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记录,现在它正在工作。 谢谢你的帮助!