Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12189[/thread]

sth->execute(@mitListe) möglich?

Leser: 2


<< >> 7 Einträge, 1 Seite
Gast Gast
 2008-07-16 00:01
#112175 #112175
Hallo!
ich habe eine Frage zur Perl-DBI genau ugesagt zur Anwendung von execute.
normalerweise wird diese Funktion ja so genutzt:
Code (perl): (dl )
1
2
$sth->prepare($anweisung);
$sth->execute($foo, $bar);

Meine Frage wäre nun, ob ich anstatt die Variablen $foo und $bar direkt zu übergeben etwas in der Art möglich ist:
Code (perl): (dl )
1
2
3
$sth->prepare($anweisung);
my @vars = ($foo, $bar);
$sth->execute(@vars);

Sprich, ob ich der execute-Funktion irgendwie eine variable Liste von Werten übergeben kann.
Viele Grüße!
jan
 2008-07-16 03:29
#112183 #112183
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
klar, du kannst sie in einen array stopfen, du musst nur darauf achten, dass du im sql, das du prepared hast, auch die entsprechende anzahl platzhalter drin sind, sonst gibt's beschwerden
Gast Gast
 2008-07-16 10:17
#112184 #112184
Morgen!
Dass es so einfach ist; auf die Idee bin ich gar nicht gekommen.
Ich hab es jetzt nach ein wenig Recherche im Internet auch etwas anders gelöst, mit einer Schleife über bind_param().
Ich hatte zunächst die Beschreibung im CPAN von bind_param nicht verstanden, aber dann noch ein Beispiel auf Deutsch gefunden, was mich auf die Idee brachte.

Danke für die Hilfe!
moritz
 2008-07-16 11:18
#112186 #112186
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Das geht übrigens nicht nur mit $sth->execute so, sondern mit beliebigen Methoden und mit allen Funktionen, die keinen Prototyp haben.

Code (perl): (dl )
1
2
3
foo($a, $b, $c);
my @list = ($a, $b, $c);
foo(@list);


Die beiden Aufrufe von foo() sind in der Funktion foo selbst nicht zu unterscheiden.
Struppi
 2008-07-16 11:25
#112187 #112187
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Gast+2008-07-16 08:17:32--
Ich hab es jetzt nach ein wenig Recherche im Internet auch etwas anders gelöst, mit einer Schleife über bind_param().
Wozu eine Schleife?
Deine Beispiel oben sind in der Funktionsgweise absolut identisch, warum hast du das nicht einfach ausprobiert?
Gast Gast
 2008-07-16 20:31
#112221 #112221
Struppi+2008-07-16 09:25:57--
Wozu eine Schleife?
Deine Beispiel oben sind in der Funktionsgweise absolut identisch, warum hast du das nicht einfach ausprobiert?

Wenn man bisher nur C oder Java programmiert hat, kommt man gar nicht darauf, dass es so einfach sein kann! :-)
murphy
 2008-07-16 22:49
#112226 #112226
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Gast+2008-07-16 18:31:30--
[...]
Wenn man bisher nur C oder Java programmiert hat, kommt man gar nicht darauf, dass es so einfach sein kann! :-)


Also in Java kann man einer variadischen Funktion auch ein Array voller Parameter uebergeben, wenn man das möchte ;-)
When C++ is your hammer, every problem looks like your thumb.
<< >> 7 Einträge, 1 Seite



View all threads created 2008-07-16 00:01.