在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中文網其他相關文章!