Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit PHP NULL-Werte ordnungsgemäß in eine MySQL-Datenbank einfügen?
Nullwerte in PHP/MySQL einfügen
Beim Einfügen von Daten in eine Datenbank ist es wichtig, Nullwerte korrekt zu behandeln. In diesem Fall möchten wir Null in ein Datenbankfeld einfügen, wenn der entsprechende Wert im Array ebenfalls Null ist.
Problem:
Bedenken Sie den folgenden Code:
$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']}); }
Wenn einer der null_field-Werte null ist, schlägt die Einfügeanweisung fehl. Dies liegt daran, dass PHP Null als leere Zeichenfolge interpretiert, was zu einem Syntaxfehler in der SQL-Abfrage führt.
Lösung:
Der empfohlene Ansatz für den Umgang mit Nullwerten ist vorbereitete Aussagen verwenden. Vorbereitete Anweisungen unterscheiden automatisch zwischen Null und einer leeren Zeichenfolge und fügen den richtigen Wert ein.
$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)"); $stmt->bind_param('ss', $field1, $field2); $field1 = "String Value"; $field2 = null; $stmt->execute();
Vorbereitete Anweisungen verhindern auch SQL-Injection-Angriffe, indem sie Werte maskieren und sicherstellen, dass die Abfrage richtig formatiert ist. Daher wird empfohlen, MySQLi und seine vorbereiteten Anweisungen anstelle der veralteten MySQL-Erweiterung zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP NULL-Werte ordnungsgemäß in eine MySQL-Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!