Alexander (HH): mySQL-Maskierung

Beitrag lesen

Moin Moin!

du kannst mit dem DBI Modul auch Parameter binden und diese werden dann automatisch gequotet.

Das hat noch weitere Vorteile:
* SQL Injection fällt vollkommen flach, sofern der jeweilige DBD bzw. das darunter liegende DB-Interface nicht vollkommen schlampig programmiert ist.
* Caching der SQL-Statements wird so überhaupt erst möglich (prepare_cached).
* Absolut kein Theater mit dem Quoting von Werten, weil sich DBI darum kümmert.

Übrigens funktionieren Platzhalter bei DBI auch mit Datenbanken, die von sich aus keine Platzhalter unterstützen, hinter den Kulissen kümmert sich DBI darum, die Werte passend zu quoten und in das SQL-Statement einzufügen. Normalerweise reicht aber der DBD das SQL direkt an die DB weiter, und reicht die Parameter in einem zweiten Schritt weiter, ohne dass überhaupt ein Quoting notwendig ist. Das macht dem SQL-Parser auf der DB-Seite das Leben natürlich auch leichter.

Es gibt also in aller Regel keinen vernünftigen Grund, keine Platzhalter einzusetzen.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".