I use Class::DBI + DBD::mysql in mod_perl Apache::DBI enabled environment. I've found
SELECT LAST_INSERT_ID would *sometimes* cause vizarre result in persistent connection. It happens very rarely, but the phenomenon is gone away we stop-start the httpd. Here's a patch for Class::DBI that fix this problem (*1) (for 0.36). In evey installation of Class::DBI I've applied this patch, and the problem above never happens with it. It should be clever that Class/DBI.pm can be free from this mysql-dependent hardcode into each subclasses (Strategy Pattern, or DBIx::AnyDBD?). *1) error message is as follows: Can't call method "call_hook" on an undefined value at /usr/local/lib/ perl5/site_perl/5.005/Class/DBI.pm line 101. -- Tatsuhiko Miyagawa <[EMAIL PROTECTED]> --- DBI.pm~ Fri Nov 2 00:43:27 2001 +++ DBI.pm Fri Mar 8 00:57:17 2002 @@ -125,10 +125,7 @@ $sth->execute(values %$data); # If we still don't have a primary key, try AUTO_INCREMENT. unless( _safe_exists($data, $self->primary) ) { - $sth = $self->sql_LastInsertID; - $sth->execute; - $data->{$self->primary} = ($sth->fetch)[0]; - $sth->finish; + $data->{$self->primary} = $class->db_Main->{mysql_insertid}; } }; if($@) {