Home > Article > Backend Development > How to Insert Null Values into MySQL Using Prepared Statements in PHP?
Null Value Insertion in PHP/MySQL
When importing data from one MySQL table to another, inserting null values can be problematic. If an array value is null and the corresponding database field allows null values, the insertion may fail.
Original Query with Issue
<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>
Solution: Using Prepared Statements
Prepared statements offer a convenient solution for inserting null values. MySQL distinguishes between empty strings (''") and null values, so when using raw SQL queries, explicit null checks and quotes are required.
However, with prepared statements, MySQL automatically handles these distinctions, ensuring that null values are inserted correctly, regardless of the PHP data type.
<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>
Advantages of Prepared Statements
Therefore, for inserting null values in PHP/MySQL, using prepared statements is highly recommended. It simplifies your code, ensures correctness, and provides added security and performance benefits.
The above is the detailed content of How to Insert Null Values into MySQL Using Prepared Statements in PHP?. For more information, please follow other related articles on the PHP Chinese website!