To be more specific, everytime you use $dbh->prepare(...), after you're done with'em, do $sth->finish(); That should solve the problem.
Good luck -- sherzodR On Mon, 26 Nov 2001, Colin Faber wrote: >You've failed to close your prepare() statements with finish() > >See the perldoc on DBI again. > > >Jaime Teng wrote: >> >> Hi, >> >> I have been pulling my hair due to this annoying error. x( >> >> **************************************************************************** >> DBI::db=HASH(0x1d2998c)->disconnect invalidates 1 active statement handle >> (either destroy statement handles or call finish on them before >> disconnecting) >> at C:\WEBSITE\script\default.pl line 721. >> **************************************************************************** >> >> It is a Perl CGI script and at line 721 is a simple disconnect command: >> >> 721 $DBH->disconnect; >> 722 >> 723 binmode STDOUT; >> 724 print "Content-type: text/html\cM\cJ"; >> 725 print "Content-length: ",length($HTTP),"\cM\cJ"; >> 726 print "\cM\cJ"; >> 727 print $HTTP; >> >> The error message is straight forward and means that I have an open >> mySQL handle that is not closed; example: >> >> $sth=$DBH->prepare("SELECT ......"); >> $sth->execute; >> $DBH->disconnect; <--- should have been a fetch before disconnect. >> >> But I am dead sure I have a result collector: >> $sth=$DBH->prepare("SELECT ......"); >> $sth->execute; >> $result = $sth->fetchrow; >> >> I only use three functions: prepare, execute and fetchrow. >> >> For all intents and purposes, I have reviewed the script line per line >> and even made sure that each select will give only one result by adding >> "LIMIT 1" >> $sth=$DBH->prepare("SELECT ...... LIMIT 1"); >> >> arrrrrggggggggg! >> >> I am Perl built 626 on win2000. Mysql 3.23.37 >> >> I have encountered this kind of errors on Linux+Apache before and I solved it >> via: >> $sth=$DBH->prepare("SELECT ......LIMIT 1"); >> $sth->execute; >> while ( $result = $sth->fetchrow ) {1}; >> >> It appeared to me that even if only one result is to be expected, mysql >> would throw more than one. or is this a problem with DBD-Mysql module? >> >> regards, >> Jaime >> >> --------------------------------------------------------------------- >> Before posting, please check: >> http://www.mysql.com/manual.php (the manual) >> http://lists.mysql.com/ (the list archive) >> >> To request this thread, e-mail <[EMAIL PROTECTED]> >> To unsubscribe, e-mail <[EMAIL PROTECTED]> >> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > >--------------------------------------------------------------------- >Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > >To request this thread, e-mail <[EMAIL PROTECTED]> >To unsubscribe, e-mail <[EMAIL PROTECTED]> >Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php