[PHP] Verwendung von PDO und PDO->query()/PDO->exec()

Apache, Lighttpd, nginx, Cherokee
dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

[PHP] Verwendung von PDO und PDO->query()/PDO->exec()

Post by dtdesign » 2007-06-23 14:01

Hallo,

ich beschäftige mich momentan mit einer Datenbank-Abstraktions-Schicht und möchte gerne PHP Data Objects einsetzen.

Laut Dokumentation brauche ich mich bei den sogenannten Prepared Statements nicht um das Escapen von Datenbank-Steuerzeichen zu kümmern. Jedoch halte ich den Umweg für P.S. bei "einmaligen" Abfragen - sprich der Query wird insgesamt nur einmal ausgeführt - zu Resourcen lastig.

Dem entsprechend wollte ich nun Datenbank-Abfragen, die nicht mehrfach abgefeuert werden, dynamisch erzeugen lassen und direkt per PDO->exec() bzw. PDO->query() an die Datenbank übermitteln.

Und hier kommt auch schon das Problem, das escapen z.b.: bei MySQL geht über die Funktion mysql_real_escape_string(), jedoch benötigt die Funktion als 2. Parameter eine aktive Datenbankverbindung. Ein var_dump auf das PDO-Objekt bringt leider keinen Resource-Link zu Tage.

Meine Frage ist nun: Wie komme ich an den Resource-Link der aktiven Datenbankverbindung der PDO-Erweiterung?

Gruß
dtdesign

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: [PHP] Verwendung von PDO und PDO->query()/PDO->exec()

Post by kase » 2007-06-23 16:10

Hallo,

was spricht denn gegen http://de.php.net/manual/en/function.PDO-quote.php ?

mysql_real_escape_string() würde ich nicht benutzen, wenn schon PDO, dann richtig :)

Ich würde allerdings, wie es auch bei der Funktionsbeschreibung von PDO->quote() steht, lieber Prepared Statements benutzen.

Auch bei Querys, die nur ein einziges Mal an die Datenbank geschickt werden, kann man bedenkenlos Prepared Statements nutzen, da die Datenbank die Querys sowieso optimiert, sprich ein Prepare ausführt. Man hat keinerlei Performanceverluste, selbst wenn man nicht mal Parameter im Query hat (sowas wie SELECT count(*) FROM xyz).

dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: [PHP] Verwendung von PDO und PDO->query()/PDO->exec()

Post by dtdesign » 2007-06-23 16:47

Hallo kase,

vielen Dank für deine gute Erklärung, habe es gerade in der Dokumentation nachgelesen. Dann werde ich halt nur prepared Statements benutzen, vereinfacht das ganze :)

Dir nochmals vielen Dank für die Mühe!

Gruß
dtdesign