Thread DBI::db disconnect invalidates statement handle (10 answers)
Opened by iche at 2012-04-26 16:31

Gast iche
 2012-04-27 11:42
#157894 #157894
Soooo :)

Dank eingeschaltetem Tracing konnte ich jetzt etwas finden.

Immer wenn ich ein SELECT-Statement aufgerufen habe und die Werte per
Code (perl): (dl )
my $row = $dbh->fetchrow_array();
abgerufen habe, wurde das anschliessende Disconnect mit einem Eintrag im Errorlog quittiert.

Das sah dann so aus:

Code: (dl )
1
2
3
4
5
[Fri Apr 27 11:22:50 2012] [error] [client XXXXXXXX]     -> disconnect 
[Fri Apr 27 11:22:50 2012] [error] [client XXXXXXXX] for DBD::mysql::db (DBI::db=HASH(0x2129a88)
[Fri Apr 27 11:22:50 2012] [error] [client XXXXXXXX] ~0x2129a40
[Fri Apr 27 11:22:50 2012] [error] [client XXXXXXXX] ) thr#15e2010
[Fri Apr 27 11:22:50 2012] [error] [client XXXXXXXX] [Fri Apr 27 11:22:50 2012] xxxxx.pl: DBI::db=HASH(0x2129a40)->disconnect invalidates 1 active statement handle (either destroy statement handles or call finish on them before disconnecting) at ...


Warum das nur bei einem "fetchrow_array()" auftritt, keine Ahnung. Ich schließe das $dbh jetzt immer mit einem "finish" und werde das mal beobachten. Warum die Hashs für $db verschieden sind, weiß ich nicht. Kann das damit zusammenhängen, dass das per Subroutine aufgerufen wird und die $db-Variable deshalb mit einem unterschiedlichen Hashwert refernziert wird?

Ich bedanke mich noch mal bei euch, werde das aber wirklich wohl alles mal überarbeiten müssen!
Last edited: 2012-04-27 11:47:33 +0200 (CEST)

View full thread DBI::db disconnect invalidates statement handle