Thread Was macht "prepare()" eigentlich genau? (6 answers)
Opened by iche at 2012-04-10 15:02

pq
 2012-04-10 16:21
#157372 #157372
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
was prepare genau macht, ist datenbankabhängig. in mysql ist das per default so implementiert, dass es einfach ein statement-handle erzeugt wird, das du dann mit execute ausführen kannst. erst dann geht es zur datenbank.

wenn du aber die option mysql_server_prepare=1 mit in den dsn schreibst, dann wird das statement serverseitig vorbereitet und auch schon gecheckt (auf syntax und vorhandene tabellen/felder.
das wiederholte ausführen (mit verschiedenen parametern in einer schleife) ist dann auch schneller.
bei server_prepare muss man aber sehr sauber programmieren und alle statement-handles selber mit finish beenden, sonst handelt man sich schwer zu findende bugs ein.

ansonsten erlauben aber sowohl prepare() als auch do() die verwendung von platzhaltern. ich finde prepare aber schöner.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Was macht "prepare()" eigentlich genau?