Es posible vincular un valor NULL verdadero a las declaraciones preparadas (lea esto ).
De hecho, puede usar mysqli_bind_parameter para pasar un valor NULL a la base de datos. simplemente cree una variable y almacene el valor NULL (consulte la página de manual para ello) en la variable y vincúlelo. Funciona muy bien para mí de todos modos.
Por lo tanto, tendrá que ser algo como:
<?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);
?>
Esto debería insertar un valor NULL en la base de datos.