如何检查MySQL是否返回null / empty?

时间:2009-11-07 15:36:18

标签: php mysql

在DB中,我有一个名为fk_ownerID的字段的表。默认情况下,当我添加新表行时,fk_ownerID为空。在Toad for MySQL中,这显示为{null}。如果为fk_ownerID指定了值,之后我删除了此值,则设置fk_ownerID = ""

现在,我有以下代码:

$result = $dal->getRowByValue('tableName','id', $_POST['myID']);

// Check to see if any rows where returned
if (mysql_num_rows($result) > 0)
{
  while ($row = mysql_fetch_array($result))
  {
    $ownerID = $row["fk_ownerID"];    
  }
}

现在变量$ ownerID应该有一个数字。但我不确定如何检查这个。目前我正在这样做:

if ( (strlen($ownerID) == 0) || ($ownerID == '0') || ($ownerID == 'null') )

但我很确定这些测试中只有一项是必要的。

检查行字段是空还是空的最佳方法是什么?

6 个答案:

答案 0 :(得分:41)

使用empty()和/或is_null()

http://www.php.net/empty http://www.php.net/is_null

单独清空将实现您当前的使用,如果您想要区分空字段和空字段,is_null将只能进行更多控制。

答案 1 :(得分:6)

您可以使用is_null()函数。

http://php.net/manual/en/function.is-null.php:在评论中:

  

mdufour at gmail dot com   2008年8月20日04:31   测试mySQL查询返回的NULL字段/列。

     

假设您想要检查表格“bar”的给定行中的字段/列“foo”是否为>由mySQL查询返回的是null。   你只需使用“is_null()”函数:

[connect…]
$qResult=mysql_query("Select foo from bar;");
while ($qValues=mysql_fetch_assoc($qResult))
     if (is_null($qValues["foo"]))
         echo "No foo data!";
     else
         echo "Foo data=".$qValues["foo"];
[…]

答案 2 :(得分:2)

select FOUND_ROWS();

将返回否。选择查询选择的记录。

答案 3 :(得分:1)

if ( (strlen($ownerID) == 0) || ($ownerID == '0') || (empty($ownerID )) )

如果 $ ownerID NULL ,它将由 empty()测试

触发

https://www.php.net/empty

答案 4 :(得分:0)

此外,当您处理可能意味着null或0的数字或返回某种形式的false或null时,请不要忘记===运算符,而这不是您正在寻找的。

答案 5 :(得分:-4)

假设

$row=mysql_fetch_row($rc)
and if you want to check if row[8] is null then do
$field=$row[8];
   if($field)
echo "";
else
 echo "";