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.