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

Problem mit fetchrow_hashref(): Problem mit fetchrow_hashref()

Leser: 1


<< >> 3 Einträge, 1 Seite
Gast Gast
 2005-11-07 13:41
#59860 #59860
Hallo zusammen,

ich benutze in meinem Perl-Script (.pl) eine ganz normale while-Schleife, die die Datensätze eine MySql-Abfrage verarbeitet:

while (my $array = $sth->fetchrow_hashref())
{
...

Im Schleifenkörper werden die Inhalte des jeweiligen Datensatzes geprüft und schliesslich wird der Datensatz in der Datenbank mit UPDATE aktualisiert. Dies macht das Tool auch beim ersten Datensatz, nur wenn es zum nächsten springen soll, kommt der Fehler:

cant`t call method fetchrow_hashref without a package or object reference ....

Kann mir jemand sagen, was die Fehlermeldung bedeutet bzw. wo mein Fehler liegt?

Gruß Florian Scheidler
master
 2005-11-07 14:02
#59861 #59861
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
Ich hatte mal ein ähnliches Problem und vermute du benutzt z.b. beim update auch ein $sth-> oder die gleiche verbindung so.. versuchs mal mit 2 völlig unabhängigen Verbindungen.


z. B.
$dbh1, $sth1   -> für  Select
$dbh2, $sth2    -> für update..

dann sollte es gehen..

Code: (dl )
1
2
3
4
5
6
&open_sql('SELECT * FROM XYZ',$DB_DSN);     #Eigene Methode es wird "$dbh" benutzt
while (  $result = $sth->fetchrow_hashref() )
{
    $dbh3->do("UPDATE user SET wert=7 WHERE ID=".$result->{'t_adresse_ID'});
}
&close_sql;
\n\n

<!--EDIT|master|1131365230-->
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
murphy
 2005-11-07 14:08
#59862 #59862
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Die Fehlermeldung bedeutet, dass versucht wird die Methode fetchrow_hashref auf etwas anzuwenden, was überhaupt kein Objekt ist.

Mein empirisches Resultat ist, dass das nur dann passiert, wenn $sth eq '' ist, daher vermute ich aus dem Bauch heraus, dass du in deinem Behandlungscode für die Resultate aus der Datenbank irgendwo einen Fehler hast, der $sth mit Müll überschreibt.

Wenn dir das nicht weiterhilft und du das Problem nicht alleine beheben kannst, solltest du auf jeden Fall mehr Code posten, sonst kann man dir nur helfen, falls man im Besitz einer Glaskugel ist...
When C++ is your hammer, every problem looks like your thumb.
<< >> 3 Einträge, 1 Seite



View all threads created 2005-11-07 13:41.