How to check if MySQL returns null/empty?


Question

In DB I have a table with a field called fk_ownerID. By default, when I add a new table row, the fk_ownerID is empty. In Toad for MySQL, this is shown as {null}. If fk_ownerID is given a value, and I later remove this value, I set fk_ownerID = "".

Now, I have the following code:

$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"];    
  }
}

Now the variable $ownerID should have a number, or not. But I'm unsure how to check this. Currently I'm doing this:

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

But I'm pretty sure only one of these tests should be necessary.

What is the best way to check if a row field is empty or null?

1
24
9/4/2018 4:38:47 AM

Accepted Answer

Use empty() and/or is_null()

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

Empty alone will achieve your current usage, is_null would just make more control possible if you wanted to distinguish between a field that is null and a field that is empty.

41
11/7/2009 3:57:54 PM

You can use is_null() function.

http://php.net/manual/en/function.is-null.php : in the comments :

mdufour at gmail dot com 20-Aug-2008 04:31 Testing for a NULL field/column returned by a mySQL query.

Say you want to check if field/column “foo” from a given row of the table “bar” when > returned by a mySQL query is null. You just use the “is_null()” function:

[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"];
[…]

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon