Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit PHP NULL-Werte ordnungsgemäß in eine MySQL-Datenbank einfügen?

Wie kann ich mit PHP NULL-Werte ordnungsgemäß in eine MySQL-Datenbank einfügen?

Susan Sarandon
Susan SarandonOriginal
2024-11-29 13:56:24376Durchsuche

How Can I Properly Insert NULL Values into a MySQL Database Using PHP?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn