Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP/MySQL Nullwerte einfügen

Dies ist ein Beispiel für die Verwendung von vorbereiteten Anweisungen erspart Ihnen wirklich Ärger.

Um in MySQL einen Nullwert einzufügen, müssen Sie ihn bei INSERT angeben Zeit oder lassen Sie das Feld weg, das eine zusätzliche Verzweigung erfordert:

INSERT INTO table2 (f1, f2)
  VALUES ('String Value', NULL);

Wenn Sie jedoch einen Wert in dieses Feld einfügen möchten, müssen Sie Ihren Code jetzt verzweigen, um die einfachen Anführungszeichen hinzuzufügen:

INSERT INTO table2 (f1, f2)
  VALUES ('String Value', 'String Value');

Vorbereitete Kontoauszüge erledigen das automatisch für Sie. Sie kennen den Unterschied zwischen string(0) "" und null und schreiben Sie Ihre Anfrage passend:

$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);

$field1 = "String Value";
$field2 = null;

$stmt->execute();

Es maskiert Ihre Felder für Sie und stellt sicher, dass Sie nicht vergessen, einen Parameter zu binden. Es gibt keinen Grund, bei mysql zu bleiben Verlängerung. Verwenden Sie mysqli und es sind vorbereitete Anweisungen stattdessen. Sie ersparen sich eine Welt voller Schmerzen.