在 PHP/MySQL 中插入空值
將資料插入資料庫時,正確處理空值至關重要。在這種情況下,如果數組中對應的值也為 null,我們希望將 null 插入到資料庫欄位中。
問題:
考慮以下程式碼:
$results = mysql_query("select * from mytable"); while ($row = mysql_fetch_assoc($results)) { mysql_query("insert into table2 (f1, f2) values ('{$row['string_field']}', {$row['null_field']}); }
當其中一個 null_field 值為 null 時,插入語句失敗。這是因為 PHP 將 null 解釋為空字串,從而導致 SQL 查詢中出現語法錯誤。
解:
處理 null 值的建議方法是使用準備好的語句。準備好的語句會自動區分 null 和空字串,並插入正確的值。
$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)"); $stmt->bind_param('ss', $field1, $field2); $field1 = "String Value"; $field2 = null; $stmt->execute();
準備好的語句也可以透過轉義值並確保查詢格式正確來防止 SQL 注入攻擊。因此,建議使用 mysqli 及其準備好的語句,而不是已棄用的 mysql 擴充。
以上是如何使用 PHP 正確地將 NULL 值插入 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!