problem storing a hash in DB using Storage::nfreeze Perl
- by Sam
Hello,
I want to insert a hash in the db using Storage::nfreeze but the data is not inserted properly.
the code is as follow:
%rec=();
$rec{'name'} = 'my name';
$rec{'address'} = 'my address';
my $order1 = new Order();
$order1->set_session(\%rec);
$self->createOrder($order1);
sub createOrder {
my $self = $_[0];
my $order = $_[1];
# Retrieve the fields to insert into the database.
my $st = $dbh->prepare("insert into order (session,.......) values(?,........)");
my $session = %{$order->get_session()};
$st->execute(&Storable::nfreeze(\%session),.....);
$st->finish();
}
sub getOrder
{
...
my $session = &Storable::thaw( $ref->{'session'} );
.....
}
the thaw is working fine because I tested it withe some rows that have been inserted correctly.
but when I try to get a row that was inserted using the createOrder subroutine, I get an error saying"
Storable binary image v36.65 more recent than I am (v2.7) at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/thaw.al) line 415
the error comes from the line that have thaw. the nfreeze did not store the hash properly.
Can someone point me to what i m doing wrong in the createOrder subroutine?
Thanks in advance.
I know the module version have nothing to do with the problem.