在 MySQLi 准备语句中存储 True NULL 值
在 MySQLi 中的准备语句中,NULL 值的默认行为是将其转换如果是字符串,则为空字符串 ('');如果是整数,则为 0。但是,如果您希望保留 NULL 值,可以采取一种特定的方法。
使用 MySQL NULL 安全运算符
将真正的 NULL 存储在在 MySQLi 准备好的语句中,您必须使用 MySQL NULL 安全运算符:
<=>
此运算符确保将列与 NULL 进行相等或不相等比较。例如:
$price = NULL; // Note: Using php NULL without quotes
$stmt = $mysqli->prepare("SELECT id FROM product WHERE price <=> ?"); // Selects products with NULL prices
$stmt->bind_param($price);
在此示例中,查询将检索价格列为 NULL 的产品。如果没有 NULL 安全运算符,查询将不会返回任何结果,因为 NULL 不等于空字符串或 0。
示例
以下 PHP 代码演示如何在准备好的语句中使用 NULL 安全运算符:
$firstName = NULL;
$lastName = "Doe";
$stmt = $mysqli->prepare("UPDATE users SET first_name <=> ?, last_name = ?");
$stmt->bind_param("ss", $firstName, $lastName);
$stmt->execute();
此查询将使用指定的姓氏更新用户并保留名字的 NULL 值。
以上是如何在 MySQLi 准备好的语句中存储 True NULL 值?的详细内容。更多信息请关注PHP中文网其他相关文章!