dedlfix: Sortierung über URL und den ORDER-Befehl

Beitrag lesen

echo $begrüßung;

Prepared Statements erlauben es, Query und Daten über getrennte Kanäle zum DBMS zu leiten. Die Sortierreihenfolge ist aus meiner Sicht aber kein Datum, sondern Teil des Querys. Also hilft das nicht viel.

Du anwortest so zögerlich. Es geht definitiv nicht, weil das ? bei »ORDER BY ?« quasi[1] nach »ORDER BY 'wert'« aufgelöst wird und nicht nach »ORDER BY wert« oder »ORDER BY wert«. Es kommt also ein String raus und kein Spaltenidentifier. Ein Prepared Statement ist zur Laufzeit unveränderlich. Keine Befehlsbestandteile, keine Identifier, nur Werte lassen sich an das P.S. binden.

Abgesehen davon hatte ich bislang den Eindruck, Prepared Statements sind vor allem dann sinnvoll, wenn die Absicht besteht, mehr als einen gleichartigen Query durchzuführen. Also beispielsweise massenhaft INSERTs oder UPDATEs.

Ja, der Vorteil des Nur-Einmal-Parsens ist nur bei mehrmaliger Verwendung innerhalb eines Script vorhanden. Übrig bleibt lediglich der Sicherheitseffekt des Nicht-Quotieren- und -Maskieren-Müssens unter Hinzufügung des Aufwandes für das P.S.-Handling zumal das unter MySQL/PHP mit dem Variablen-Binding auch noch etwas unhübsch gelöst ist.

[1] "quasi" deshalb, weil eine solche Auflösung bei echten Prepared Statements nicht stattfindet. Bei Datenbankabstraktionen, die P.S. nur nachbilden, wird man das jedoch in der Form finden.

echo "$verabschiedung $name";