Php 如何从dbs获取NULL

Php 如何从dbs获取NULL,php,mysql,Php,Mysql,若我使用空值从MySQL数据库获取结果,那个么PHP将其作为字符串值处理。对null值的测试是returnme FALSE和echo return null 此示例返回的值将不为NULL,但我希望得到的值为NULL 如果我没有误认为连接到字符串的null值不会产生任何输出,那么您必须显式地说IS null 另外 mysql中的语句不完全相同 select * from config where description = null; Empty set (0.00 sec) 及 问题在于数据库

若我使用空值从MySQL数据库获取结果,那个么PHP将其作为字符串值处理。对null值的测试是returnme FALSE和echo return null

此示例返回的值将不为NULL,但我希望得到的值为NULL

如果我没有误认为连接到字符串的null值不会产生任何输出,那么您必须显式地说IS null

另外

mysql中的语句不完全相同

select * from config where description = null;
Empty set (0.00 sec)


问题在于数据库中保存的值。我确实更新了记录,现在它工作了。
谢谢你的帮助

我不确定连接到函数的返回是否是一种好的做法,您能提供一个参考吗?我想测试$result而不是$mail,因为我的stmt的$mail变量不是null,但是我的激活结果可以是null尝试定义$result=null;在将其传递给bind_resultw之前,当您说null时,是指没有返回记录的结果还是实际列值为null?具有空字符串的列和包含null值的列之间存在差异。为什么您需要知道它具体为null?为什么不直接使用空$result呢?因为空也是返回FALSE。呃。。。那里面有什么?你不懂的是什么?我需要从callempty返回TRUE作为NULL值,因为NULL是空值。如果此查询将字符串NULL返回给PHP,则数据库中必须有字符串NULL,而不是TRUE NULL。也许您无意中在表定义的DEFAULT子句中引用了NULL?
$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';
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)