Я знаю, что это старый поток, но можно связать истинное значение NULL с подготовленными операторами (прочитайте this ).
Фактически, вы можете использовать mysqli_bind_parameter для передачи значения NULL в базу данных. просто создайте переменную и сохраните значение NULL (см. man-страницу для нее) в переменной и привяжите ее. В любом случае, отлично работает для меня.
Таким образом, это должно быть что-то вроде:
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
// person is some object you have defined earlier
$name = $person->name();
$age = $person->age();
$nickname = ($person->nickname() != '') ? $person->nickname() : NULL;
// prepare the statement
$stmt = $mysqli->prepare("INSERT INTO Name, Age, Nickname VALUES (?, ?, ?)");
$stmt->bind_param('sis', $name, $age, $nickname);
?>
Это должно вставить значение NULL в базу данных.