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.