【问题标题】:PHP returns NULL from database as empty string "". Why?PHP 从数据库返回 NULL 作为空字符串“”。为什么?
【发布时间】:2013-12-05 16:49:33
【问题描述】:

这可能与我之前的问题有关,也可能与this 重复。

那么,为什么在 MySQL 数据库中声明为 NULL 的值返回为 ""(空字符串),在这种情况下,我的所有函数都返回一些取决于评估结果的值,不工作。

$var = NULL; // false
$var = ""; // true

我也在转储评估结果:

var_dump(isset($var));

我正在使用 PDO DB 驱动程序、PHP 5.4.7 和 MySQL 5.5.27。

这是预期的行为还是这是一些错误? NULL 在字段中保存为 MySQL NULL,而不是字符串 'NULL'。

【问题讨论】:

  • 我很确定$var === NULL would work better
  • 可能是NULL,你是用is_null()还是别的什么检查?
  • @JoachimIsaksson 查看编辑。

标签: php mysql


【解决方案1】:

您需要使用is_null() 来查看该值是否为空。 NULL 等于没有。甚至另一个NULL

(另外,在您的示例中,您使用了赋值运算符(=)而不是比较运算符(=====),但我确信这只是您问题中的一个错字。

【讨论】:

  • 查看编辑。如果我使用 is_null() 我的代码将始终评估为 false,因为 NULL 被转换为空字符串“”。
  • 感谢您的努力,愚蠢的我,strip_tags() 实际上在我的 sanitize 函数中将 NULL 剥离为空字符串。这是我最不应该预料到的。
猜你喜欢
  • 1970-01-01
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多