I am unable to set a nullable field with a default value of null to null using mysql pdo. I can do it using straight sql.
I have tried: (mostly from this question How do I insert NULL values using PDO?)
-
Null Int
bindValue(':param', null, PDO::PARAM_INT); -
Null Null
bindValue(':param', null, PDO::PARAM_NULL); -
‘Null’, Int
bindValue(':param', 'NULL', PDO::PARAM_INT); -
‘Null’, Null
bindValue(':param', 'NULL', PDO::PARAM_NULL); -
Null
bindValue(':param', null); -
‘Null’
bindValue(':param', 'NULL'); -
and the
bindParamcounterparts of 5 and 6 with a variable that held the value of the binding.
Everything from PDO results in the value being set to 0.
PHP Version: PHP 5.3.2-1ubuntu4.10
MYSQL SERVER VERSION: 5.1.63-0ubuntu0.10.04.1
EDIT
Screenshot of column info

NULL values do not require any special treatment. Simply bind your value the usual way
PDO will detect a null value and send it to database instead of string.
In case of WHERE clause, where your value could be either null or not null, use Mysql’s spaceship operator: