dedlfix: WHERE ... AND ... AND = ERROR ?

Beitrag lesen

Tach!

$daten = "DELETE FROM buchen WHERE Username = "$Username" AND Datum = "$Datum" AND Von = "$VonArray[$Zahler]"";

$daten = "DELETE FROM buchen WHERE Username = '$Username' AND Datum = '$Datum' AND Von = '{$VonArray[$Zahler]}'";
so isses sicherer ... also mit {$...}

Nein, ist es nicht. Die korrekte PHP-Syntax ist hier irrelevant, weil man wegen der notwendigen Kontextwechselbeachtung sowieso keine Variablenauflösung mehr im String hat.

$daten = "DELETE FROM buchen WHERE Username = '" . mysql_real_escape_string($Username) . "' AND Datum = '". mysql_real_escape_string($Datum) . "' AND Von = '" . mysql_real_escape_string($VonArray[$Zahler]). "'";

oder übersichtlicher, wie ich finde:

$daten = sprintf("DELETE FROM buchen WHERE Username = '%s' AND Datum = '%s' AND Von = '%s'",  
  mysql_real_escape_string($Username),  
  mysql_real_escape_string($Datum),  
  mysql_real_escape_string($VonArray[$Zahler]));

dedlfix.