How to check if MySQL returns null/empty?

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?


Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Use empty() and/or 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.

Method 2

You can use is_null() function. : 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:

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

Method 3

select FOUND_ROWS();

will return no. of records selected by select query.

Method 4

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.

Method 5

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

if $ownerID is NULL it will be triggered by the empty() test

Method 6

If your datatype in your mysql database is an auto-increment primary key, then you can’t use is_null() you must use empty() or in code, it would be if (empty($id)) {

Method 7


and if you want to check if row[8] is null then do
echo "";
 echo "";

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x