Hi!
Woher kommt eigentlich die panische Angst vor oder Abneigung gegen Prepared Statements?
Ist es wirklich panische Angst und Abneigung oder einfach nur Unwissen? Ich denke, es wird einfach zu wenig gelehrt und die Tutorials beschränken sich auf den herkömmlichen Weg, weil deren Autoren den selbst kennen.
Nichts könnte schneller oder sauberer sein als Prepared Statements. Ich muß mich nicht um das Quoting von Parametern kümmern, ich kann die Statements beliebig oft wiederverwenden (sofern die DB-API das mitmacht), und die DB kann sich großflächig sparen, Strings aus SQL-Statements herauszuparsen.
Einspruch! Sauberer sicher, aber schneller keinesfalls. Bei der herkömmlichen Methode hast du einen Funktionsaufruf plus n Maskierungen, sowie noch einen in der Fetch-Schleife. Bei den P.S. braucht es prepare(), bind_param(), bind_result(), execute() sowie das Fetchen. Das sind schonmal 5 statt 3 Funktionen, die man benötigt. Erschwerend kommt hinzu, dass es nur vorgesehen ist, einzelne Variablen zu binden. Arrays gehen nur recht umständlich anzuflanschen. In der Hinsicht wurde bei PDO ein deutlich besseres Design implementiert. Da kann man auch erst beim Execute die benötigten Parameter hinzufügen und ist auch nicht gezwungen bei der Verwendung von Prepared Statements das Ergebnis an Variablen zu binden. Zudem wird der Vorteil des bereits geparsten Statements im PHP-Webumfeld nicht besonders häufig genutzt, weil jede Script-Instanz erneut präparieren muss. Damit ergibt sich auch immer ein zusätzlicher Roundtrip zum DBMS gegenüber der herkömmlichen Variante.
Ich kann sehr gut verstehen, wenn jemand dieses umständliche Handling der Prepared Statements in PHPs mysqli-Extension nicht mag.
Lo!