Korrekte SQL-Abfrage mit PHP-Variable?
Hi,
wie lautet die korrekte Syntax für eine SQL-Abfrage via PHP mit einer Variblen?
Sieht z.Zt. so aus... leider nimmt er $wert nicht an...
$sql = 'SELECT * FROM tabelle WHERE ID = $wert';
...muss $wert in '$wert' oder in "$wert" mit '.$wert.' oder ohne?
Schreibe ich meine SQL-Abfrage besser direkt in " " ?
4 Antworten
Verwende Prepared Statements.
Damit der Wert der Variable in einem String eingesetzt wird, müssen doppelte Anführungszeichen verwendet werden. Strings im SQL-Query werden mit einfachen Anführungszeichen umklammert.
Gerade für deinen Anwendungsfall solltest du auf Prepared Statements setzen, denn diese maskieren deinen String richtig und verhindern somit eine mögliche SQL Injection. Das, was du da umschreiben müsstest, sind vielleicht 3-5 Zeilen.
Bitte wegen der Sicherheit...
$sql = sprintf ( "SELECT * FROM tabelle WHERE id=%d", (int) $wert );
Oder gleich mit PreparedStatements/PDO....
Habs: #Doppelte Gänsefüßchen.
$sql = "SELECT * FROM tabelle WHERE id = $wert";
$sql = 'SELECT * FROM tabelle WHERE ID = '. $wert . ';';
eeeeemmmm.... ok. aber die wäre denn trotzdem die richtige schreibweise? will gerade nicht alles ummodeln.
Ich lese per GET einen Wert aus der URL aus, dieser soll einen bestimmten Datensatz ansprechen, welchen ich dann auf einer Detail-Seite anzeigen lassen möchte.