Thread 31C3 - Perl-Vortrag (Perl-Rant) (30 answers)
Opened by Raubtier at 2014-12-28 00:34

rosti
 2015-12-30 14:11
#178982 #178982
User since
2011-03-19
3306 articles
BenutzerIn
[Homepage]
user image
Quote
Aber wer benutzt DBI->quote()? Wer mal gesehen hats was PHPler murksen, weiß dass quote schlecht funktioniert.


Es funktioniert einwandfrei, wenn diese Methode nicht als Klassenmethode sondern über die Instanz aufgerufen wird. Wenn prepared Statemants zum Einsatz kommen, wird implizit quote() genutzt (das steht irgendwo in den Sourcen). Auch hier kommt die Instanz (DBHandle) ins Spiel, womit $DBH->quote() dem DB-Engine-Layer entsprechend maskiert. DBI->quote() als Aufruf über die Klasse ist Unfug.

Praxisnah: Ggf. ist ein multiple Insert effizienter als ein prepared Statement. Multiple Insert ist ein Fall für quote().

quote_identifier() maskiert Feldnamen, Tabellennamen, also die Bezeichner und das setze ich immer dann ein, wenn Bezeichner nicht fest im Code verdrahtet sind sondern bspw. von außen her konfigurierbar sind.

CGI: Wie ein Enctype="application/x-www-form-urlencoded" oder "multipart/form-data" auszusehen hat, steht in uralten RFCs. Wer CGI.pm nicht mag, darf sich gerne einen eigenen Parser schreiben. Für den richtigen Umgang mit Schlüsselparametern und Parameter-Kontrollstrukturen ist das völlig belanglos, solange der Parser RFC-gerecht programmiert ist, was im CGI.pm mit Sicherheit der Fall ist.

View full thread 31C3 - Perl-Vortrag (Perl-Rant)