Schrift
[thread]3390[/thread]

Seltsamer Fehler bei $dbh->quote: & Hashreferenz



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
pktm
 2004-01-03 03:51
#35834 #35834
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!
Ich wollte eigentlich $dbh->quote Werte aus meinem Webformular übergeben, welche alle in der Hashreferenz $query = {}; drin stehen.
Dachte, ich könnte das so machen:
Code (perl): (dl )
1
2
3
4
my @params = qw( neu_titel meta_keywords description meta_page_topic webseite);
foreach( @params ){
    $cmd .= $dbh->quote( $query->{$_}; ) . ", ";
}

Wenn ich das aber so mache erhalte ich trotz Füllung der Werte immer nur NULL im Statemant.
So geht es aber:
Code (perl): (dl )
1
2
3
4
5
my @params = qw( neu_titel meta_keywords description meta_page_topic webseite);
foreach( @params ){
    my $test = $query->{$_};
    $cmd .= $dbh->quote( $test ) . ", ";
}

Mache ich da irgendwas falsch?
Bei mir sieht das eigentlich genau gleich aus, nur dass ich bei jedem Durchlauf der Schleife eine neue Variable brauche (könnte man auch vorher deklarieren, aber sie wäre dann immernoch da).
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Dubu
 2004-01-03 10:28
#35835 #35835
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=pktm,03.01.2004, 02:51]
Code (perl): (dl )
    $cmd .= $dbh->quote( $query->{$_}; ) . ", ";
[/quote]
Bis auf das falshce Semikolon im Argument zu quote(), das sowieso einen Syntaxfehler erzeugen sollte, sehe ich bei dieser Syntax eigentlich kein Problem.

Wäre es aber nicht einfacher, mit Platzhaltern zu arbeiten, statt sich das Statement so zusammenzubasteln?
pktm
 2004-01-03 12:05
#35836 #35836
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ups, habe ich erst danach gemerkt und korrigiert, macht aber keinen Unterschied.
Probierts mal aus!
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2004-01-03 16:13
#35837 #35837
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wenn ich $query richtig fülle, kommt bei mir bei beiden varianten aus deinem ersten posting
was vernünftiges raus, du musst da einen anderen fehler machen, oder deine perl-version
ist buggy.
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
pktm
 2004-01-03 16:34
#35838 #35838
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hm, also cih fülle $query so:
Code: (dl )
1
2
my $cgi = CGI->new();
my $query = $cgi->Vars();


Nehme an, das ist das Selbe wie $query{ key => "value" };, sprich so, wie du es gemacht hast.
Dann ist wohl meine perl-Version etwas am Hintern.
Habe Version 5.6.1 :(
Mal sehen, wenigstens geht es wie oben beschrieben.
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2004-01-03 17:07
#35839 #35839
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=pktm,03.01.2004, 15:34]Dann ist wohl meine perl-Version etwas am Hintern.
Habe Version 5.6.1 :([/quote]
um das rauszufinden, hilft aber keine vermutung wie diese, sondern
ein beispiel-programm, das syntaktisch korrekt ist, die eingabe und
die ausgabe. die eingabe kannst du ja simulieren, also statt CGI::Vars()
füllst du $query manuell.
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
renee
 2004-01-03 17:07
#35840 #35840
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
mach mal my %query = $cgi->Vars();
und dann statt $query->{$_} halt $query{$_}\n\n

<!--EDIT|renee|1073142563-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2004-01-03 17:11
#35841 #35841
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
renee:
Quote
      Called in a scalar context, it
      returns the parameter list as a tied hash reference.
      Changing a key changes the value of the parameter in the
      underlying CGI parameter list.  Called in a list context,
      it returns the parameter list as an ordinary hash.  This
      allows you to read the contents of the parameter list, but
      not to change it.
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
renee
 2004-01-03 17:22
#35842 #35842
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ich sehe hier ja auch nichts, wo der Wert geändert werden soll...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2004-01-03 17:38
#35843 #35843
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
trotzdem sollte das doch keinen unterschied machen, ob ich nun $query oder %query
verwende. bei mir funktionieren jedenfalls beide obigen varianten, und zwar mit $query.
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
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2004-01-03 03:51.