Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich mit PHP Nullwerte in eine MySQL-Datenbank ein?

Wie füge ich mit PHP Nullwerte in eine MySQL-Datenbank ein?

DDD
DDDOriginal
2024-10-30 13:05:02422Durchsuche

How to Insert Null Values into a MySQL Database Using PHP?

Nullwerte in MySQL mit PHP einfügen

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.

Verwendung vorbereiteter Anweisungen

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:

  • Das ? Platzhalter stellen die einzufügenden Felder dar.
  • ss gibt an, dass das erste Feld eine Zeichenfolge und das zweite null ist.
  • bind_param() bindet die Werte an die Platzhalter.
  • execute() führt die Abfrage aus.

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!

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