在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') )
但我很确定这些测试中只有一项是必要的。
检查行字段是空还是空的最佳方法是什么?
答案 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()测试
触发答案 4 :(得分:0)
此外,当您处理可能意味着null或0的数字或返回某种形式的false或null时,请不要忘记===运算符,而这不是您正在寻找的。 p>
答案 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 "";