tags:

views:

255

answers:

3

In by 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?

A: 

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"];
[…]
valya
+3  A: 

Use empty() and/or is_null()

http://www.php.net/empty http://www.php.net/is%5Fnull

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.

scragar
So I have to use empty() AND is_null()?
Steven
ok.... empty() should do :) --> Returns FALSE if var has a non-empty and non-zero value. The following things are considered to be empty: "" (an empty string)0 (0 as an integer)"0" (0 as a string)NULLFALSEarray() (an empty array)var $var; (a variable declared, but without a value in a class)
Steven
A: 

Also, don't forget the === operator when you're working with numbers that could mean null or 0 or return some form of false or null that isn't what you're looking for.

Citizen