sql >> Databasteknik >  >> RDS >> Mysql

PHP/MySQL Infoga null-värden

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.



  1. Konvertera från asynkron till synkron replikering i PostgreSQL

  2. Arbeta med Java Data i Alteryx

  3. Använda arbetsflödesmönster för att hantera tillståndet för alla enheter

  4. SQL ansluter