Bind SOMETIMES null with PDO

There is only one record in my database and the "action_taken" column is NULL. How the hell do I get PDO to find it?

If I find the query directly in SQL, it works as expected.

Note. This is just a test script to illustrate my problem. In most cases, the passed value will be a string, but sometimes the value will be NULL.

include ('include/mysql.php');

$sql = 'SELECT * FROM returns WHERE action_taken = :action';
$sth = $dbh->prepare($sql);
$param = null;
$sth->bindValue(':action', $param, PDO::PARAM_STR);
$sth->execute();
if ($sth->rowCount())
    {
    echo 'FOUND YOU!';
    }
else
    {
    echo 'NOOOO :(';
    }

      

+3


source to share


1 answer


Basically, you cannot say "equal to zero". It must always be IS

null:

$sql = 'SELECT * FROM returns WHERE action_taken IS :action';

      



You'd better not use it NULL

at all, if at all possible.

0


source







All Articles