【问题标题】:PHP Check for NULLPHP 检查 NULL
【发布时间】:2009-10-16 05:33:13
【问题描述】:

下面是代码:

$query = mysql_query("SELECT * FROM tablex");

if ($result = mysql_fetch_array($query)){

    if ($result['column'] == NULL) { print "<input type='checkbox' />"; }
    else { print "<input type='checkbox' checked />"; }
}

如果值为NOT NULL,我仍然会得到未选中的框。我是不是从上面做错了什么,不应该$result['column'] == NULL 工作吗?

有什么想法吗?

【问题讨论】:

  • 那真的是你的代码吗?你有一个编码错误,可能是一个 error_log 文件
  • 我只是打印复选框。并检查该值是否不为空。它似乎没有这样做.. Hense 它总是进入第一个 if 语句
  • 发布的代码缺少右括号和右括号,我因发现它而被否决? 眼球
  • 对不起,这听起来可能意味着..但我没有要求语法问题..我要求 Null 值..如果有语法错误..代码将输出错误。但是说我确实看到了括号..我实际上并没有复制和粘贴我的代码..它更像是我自己的类型。 PS不是我对你投了反对票:D

标签: php mysql null


【解决方案1】:

使用is_null=== 运算符。

is_null($result['column'])

$result['column'] === NULL

【讨论】:

  • $result['column'] === NULL 不起作用。工作is_null($result['column'])。 PHP 7.0 版。
【解决方案2】:

如何使用

if (empty($result['column']))

【讨论】:

  • 使用 PHP 的 empty() 函数留下了太多的解释空间 (php.net/manual/en/function.empty.php),并且更多的是针对一般编程场景的语言特定解决方案。如果他使用===,他将有一个可以在多种语言中使用的解决方案。
  • empty 如果列为 0 也返回 true
【解决方案3】:

确保该列的值确实为 NULL 而不是空字符串或 0。

【讨论】:

  • 我在两个地方得到了结果......它已经很晚了,我的大脑被炸毁了......正是我做了什么来弄清楚:D
  • 这就是为什么 fernyb 的回答不是一个可取的解决方案。
【解决方案4】:

我想你想用

mysql_fetch_assoc($query)

而不是

mysql_fetch_row($query)

后者返回一个按整数索引的普通数组,而前者返回一个关联数组,按字段名索引。

【讨论】:

  • sry 我正在使用 mysql_fetch_array()... 把错误的放入.. 立即编辑
【解决方案5】:

有时,当我知道我在处理数字时,我会使用这种逻辑 (if result is not greater than zero):

if (!$result['column']>0){

}

【讨论】:

  • 这是不正确的,因为如果提交可能为空,应用程序可能对该字段有不同的含义,例如空可能表示未选中,0 为假,1 为真
猜你喜欢
  • 2017-10-30
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
相关资源
最近更新 更多