dedlfix: MYSQL mysqli_real_escape_string

Beitrag lesen

Tach!

In vielen Foren wird beschrieben, das man prepared Statements nur verwenden soll, wenn Benutzereingaben verarbeitet werden, wenn jedoch intern Daten verarbeitet werden, kann man wieder normale Abfragen nehmen, da diese schneller verarbeitet werden (Einzelabfrage).

Es gibt keinen Unterschied zwischen Nutzereingaben und Daten aus anderen Quellen. Für alle muss der Kontextwechsel beachtet werden. Interne Daten müssen sich genauso an die Syntaxregeln SQLs halten.

Hier sehe ich genau das Problem des Kontextwechsels, da ja vorher über prepared Statements ungeprüfte Angaben ausgelesen und dann in eine normale Abfrage eingebunden werden.
Also doch durchweg prepared Statements verwenden?

Man muss immer den Kontextwechsel beachten oder ihn durch Verwendung von Dingen wie Prepared Statements ausschließen.

Ich habe gelesen, dass bei einem guten Programmdesign, bei dem Datenzugriffe und der Rest des Programm getrennt sind, es einfach ist, sicherzustellen das alle Abfrage vorher prepared sind.
Ist hiermit gemeint, das alle Abfragen in entsprechende Funktionen ausgelagert werden?

Es gibt eine ganze Menge Möglichkeiten, seinen Code zu strukturieren und Teile davon zu separieren. Funktionen sind eine davon und reichen recht gut für kleinere Projekte aus.

dedlfix.