--- MySQL.pm.orig 2006-08-15 03:28:00.000000000 +0400 +++ MySQL.pm 2006-08-15 09:47:24.000000000 +0400 @@ -672,7 +672,7 @@ =cut sub _initialize_db { - my ($self, $create_entry_p) = @_; + my ($self) = @_; return 0 unless (defined($self->{_dbh})); @@ -697,7 +697,7 @@ my $sqlselect = "SELECT id FROM bayes_vars WHERE username = ?"; - my $sthselect = $self->{_dbh}->prepare_cached($sqlselect); + my $sthselect = $self->{_dbh}->prepare($sqlselect); unless (defined($sthselect)) { dbg("bayes: _initialize_db: SQL error: ".$self->{_dbh}->errstr()); @@ -713,39 +713,33 @@ my ($id) = $sthselect->fetchrow_array(); - if ($id) { - $self->{_userid} = $id; - dbg("bayes: Using userid: ".$self->{_userid}); - $sthselect->finish(); - return 1; - } - - # Do not create an entry for this user unless we were specifically asked to - return 0 unless ($create_entry_p); + unless ($id) { + # For now let the database setup the other variables as defaults + my $sqlinsert = "INSERT INTO bayes_vars (username) VALUES (?)"; + + my $rows = $self->{_dbh}->do($sqlinsert, + undef, + $self->{_username}); + unless (defined($rows)) { + dbg("bayes: _initialize_db: SQL error: ".$self->{_dbh}->errstr()); + $self->{_dbh}->rollback(); + return 0; + } - # For now let the database setup the other variables as defaults - my $sqlinsert = "INSERT INTO bayes_vars (username) VALUES (?)"; + $id = $self->{_dbh}->{'mysql_insertid'}; - my $rows = $self->{_dbh}->do($sqlinsert, - undef, - $self->{_username}); - unless (defined($rows)) { - dbg("bayes: _initialize_db: SQL error: ".$self->{_dbh}->errstr()); - $self->{_dbh}->rollback(); - return 0; + $self->{_dbh}->commit(); } - $id = $self->{_dbh}->{'mysql_insertid'}; - - $self->{_dbh}->commit(); - if ($id) { $self->{_userid} = $id; - dbg("bayes: using userid: ".$self->{_userid}); + dbg("bayes: Using userid: ".$self->{_userid}); return 1; } - - return 1; + else { + dbg("bayes: _initialize_db: error: can't fetch userid"); + return 0; + } } =head2 _put_token