PHP/MySQL 中的空值插入
將資料從一個MySQL 表匯入到另一個表時,插入空值可能會出現問題。如果陣列值為空,且對應的資料庫欄位允許空值,則插入可能會失敗。
有問題的原始查詢
<code class="php">$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']}); }</code>
解:使用準備好的語句
準備好的語句為插入空值提供了便捷的解決方案。 MySQL 區分空字串(''") 和null 值,因此在使用原始SQL 查詢時,需要明確null 檢查和引號。
但是,使用準備好的語句,MySQL 會自動處理這些區別,確保null無論PHP資料型別如何,數值都會正確插入。邏輯的需求
<code class="php">$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)"); $stmt->bind_param('ss', $field1, $field2); $field1 = "String Value"; $field2 = null; // Null value will be inserted as is $stmt->execute();</code>透過防止SQL注入攻擊增強安全性
由於優化查詢執行而提高效能
以上是如何在 PHP 中使用準備好的語句將空值插入 MySQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!