Beim Einfügen von Daten in eine MySQL-Datenbank mit PHP können beim Versuch, Nullwerte einzufügen, Probleme auftreten. Standardmäßig fügt PHP eine leere Zeichenfolge oder Null für numerische Felder anstelle von Null ein, wenn der Wert in Ihrem Array Null enthält.
In diesem Beispiel:
<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>
Wenn $row[' null_field'] enthält null, es wird stattdessen als 0 eingefügt. Um dieses Problem zu beheben, können Sie vorbereitete Anweisungen verwenden.
Mit vorbereiteten Anweisungen können Sie in Ihrer Abfrage explizit Nullwerte angeben. Sie kümmern sich auch automatisch um das Escapen und Binden, wodurch das Risiko von Injektionsschwachstellen verringert wird.
So würden Sie vorbereitete Anweisungen mit MySQLi verwenden:
<code class="php">$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)"); $stmt->bind_param('ss', $field1, $field2); $field1 = "String Value"; $field2 = null; $stmt->execute();</code>
In diesem Beispiel:
Wenn $field2 null ist, wird es als null in die Datenbank eingefügt. Diese Methode verarbeitet Nullwerte korrekt und stellt sicher, dass sie nicht als leere Zeichenfolgen oder Nullwerte behandelt werden.
Das obige ist der detaillierte Inhalt vonWie füge ich mit PHP Nullwerte in eine MySQL-Datenbank ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!