- my $query = qq|INSERT INTO auth.session_content (session_id, sess_key, sess_value) VALUES (?, ?, ?)|;
- my $sth = prepare_query($::form, $dbh, $query);
+ $dbh->begin_work unless $provided_dbh;
+
+ do_query($::form, $dbh, qq|LOCK auth.session_content|);
+ do_query($::form, $dbh, qq|DELETE FROM auth.session_content WHERE session_id = ?|, $session_id);
+
+ if (%{ $self->{SESSION} }) {
+ my $query = qq|INSERT INTO auth.session_content (session_id, sess_key, sess_value) VALUES (?, ?, ?)|;
+ my $sth = prepare_query($::form, $dbh, $query);
+
+ foreach my $key (sort keys %{ $self->{SESSION} }) {
+ do_statement($::form, $sth, $query, $session_id, $key, $self->{SESSION}->{$key});
+ }