Wenn man m mit Datenbanken und php arbeitet, gibt es immer das Problem einer Injection. Injektion bedeutet, dass ein SQL-Statment abgesendet wird das manipuliert wurde, um sich zum Beispiel einzuloggen.
Um dies zu verhindern, bietet die MySqli – Erweiterung die Möglichkeit sogenannte prepared statments zu erstellen. ( wikipedia )
Um dies zu verhindern, bietet die MySqli – Erweiterung die Möglichkeit sogenannte prepared statments zu erstellen. ( wikipedia )
Dazu hier der Aufbau eines solchen Statements:
“SELECT * FROM `tabelle` WHERE `name` = ?”
Dabei wird das “?” später ersetzt mit Hilfe dieser Funktion :
$stmt->bind_param( ‘s’,$name);
Bei mehreren Variablen sieht das so aus:
“SELECT * FROM `tabelle` WHERE `name` = ? AND `test` = ?”
$stmt->bind_param( ‘ss’,$name,$test);
Schnell wird klar, dass es so nicht möglich ist, eine variable Anzahl von Parametern zu benutzen, was unter umständen aber sehr wichtig sein kann.
Um dieses Problem zu beseitigen, waren viele Stunden der suche und des Ausprobierens nötig. Die Lösung dieses Problems findet Ihr auf dieser Seite… http://dev.flauschig.ch/wordpress/?p=213, danke dafür.