using nulls in a mysqli prepared statement

后端 未结 5 2228
谎友^
谎友^ 2020-11-29 10:09

In a mysqli prepared statement, a NULL gets turned into \'\' (in the case of a string) or 0 (in the case of an integer). I would like to store it as a true NULL. Is there a

5条回答
  •  余生分开走
    2020-11-29 10:42

    It's possible to bind a true NULL value to the prepared statements (read this).

    You can, in fact, use mysqli_bind_parameter to pass a NULL value to the database. simply create a variable and store the NULL value (see the manpage for it) to the variable and bind that. Works great for me anyway.

    Thus it'll have to be something like:

    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);
    ?>
    

    This should insert a NULL value into the database.

提交回复
热议问题