- foreach my $key (sort keys %{ $self->{SESSION} }) {
- do_statement($::form, $sth, $query, $session_id, $key, $self->{SESSION}->{$key});
+ my @values_to_save = grep { $_->{fetched} }
+ values %{ $self->{SESSION} };
+ if (@values_to_save) {
+ my ($columns, $placeholders) = ('', '');
+ my $auto_restore = $self->{column_information}->has('auto_restore');
+
+ if ($auto_restore) {
+ $columns .= ', auto_restore';
+ $placeholders .= ', ?';
+ }
+
+ $query = qq|INSERT INTO auth.session_content (session_id, sess_key, sess_value ${columns}) VALUES (?, ?, ? ${placeholders})|;
+ my $sth = prepare_query($::form, $dbh, $query);
+
+ foreach my $value (@values_to_save) {
+ my @values = ($value->{key}, $value->get_dumped);
+ push @values, $value->{auto_restore} if $auto_restore;
+
+ do_statement($::form, $sth, $query, $session_id, @values);