Dette er et eksempel, hvor man bruger forberedte udsagn sparer dig virkelig for nogle problemer.
I MySQL, for at indsætte en null-værdi, skal du angive den ved INSERT
tid eller udelad feltet, som kræver yderligere forgrening:
INSERT INTO table2 (f1, f2)
VALUES ('String Value', NULL);
Men hvis du vil indsætte en værdi i det felt, skal du nu forgrene din kode for at tilføje de enkelte anførselstegn:
INSERT INTO table2 (f1, f2)
VALUES ('String Value', 'String Value');
Udarbejdede erklæringer gør det automatisk for dig. De kender forskellen mellem string(0) ""
og null
og skriv din forespørgsel korrekt:
$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);
$field1 = "String Value";
$field2 = null;
$stmt->execute();
Det undslipper dine felter for dig, sørger for, at du ikke glemmer at binde en parameter. Der er ingen grund til at blive med mysql
udvidelse. Brug mysqli
og det er forberedte udtalelser
i stedet. Du sparer dig selv for en verden af smerte.