Det här är ett exempel där förberedda uttalanden används sparar dig verkligen en del problem.
I MySQL, för att infoga ett nollvärde, måste du ange det vid INSERT
tid eller lämna fältet utanför som kräver ytterligare förgrening:
INSERT INTO table2 (f1, f2)
VALUES ('String Value', NULL);
Men om du vill infoga ett värde i det fältet måste du nu förgrena din kod för att lägga till de enskilda citattecken:
INSERT INTO table2 (f1, f2)
VALUES ('String Value', 'String Value');
Förberedda uttalanden gör det automatiskt åt dig. De vet skillnaden mellan string(0) ""
och null
och skriv din fråga på rätt sätt:
$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);
$field1 = "String Value";
$field2 = null;
$stmt->execute();
Det undkommer dina fält åt dig, ser till att du inte glömmer att binda en parameter. Det finns ingen anledning att stanna kvar med mysql
förlängning. Använd mysqli
och det är förberedda uttalanden
istället. Du kommer att rädda dig själv en värld av smärta.