#!/usr/bin/perl
use strict;
use warnings;
use DBI;
########################################################################
package Category;
sub new {
bless {}, shift;
}
sub load_fromdb {
my ($self, $dbh) = @_;
my $query = "SELECT * FROM Category WHERE tag = 'tag'";
########## -1- ##########
print "load_fromdb: got "
. $dbh->selectall_hashref($query, 'id') . "\n";
}
sub save_todb {
my ($self, $dbh) = @_;
########## -2- ##########
local $dbh->{RaiseError};
print "localised \$dbh->{RaiseError}, became "
. \$dbh->{'RaiseError'} . "\n";
print "\$dbh is $dbh\n";
########## -3- ##########
my @a = $dbh->selectrow_array("SELECT id FROM Tag WHERE id = 'ciao'");
}
########################################################################
package main;
my $dbh =
DBI->connect("DBI:mysql:database=forecast_recurrent;host=localhost",
"poletti", "", {'RaiseError' => 0, 'PrintError' => 0});
print "DB handler: $dbh\n";
my $c = new Category;
$c->load_fromdb($dbh, 'HEAD');
print "\$c object holds " . scalar(keys %$c) . " elements\n";
$c->save_todb($dbh, 'TRY');
####
DB handler: DBI::db=HASH(0x824be28)
load_fromdb: got HASH(0x8231a10)
$c object holds 0 elements
localised $dbh->{RaiseError}, became SCALAR(0x81bf144)
$dbh is DBI::db=HASH(0x824be28)
Attempt to free unreferenced scalar: SV 0x81bf1f8.
####
poletti@flaviox ~> perl -v
This is perl, v5.8.6 built for i386-linux
$DBI::VERSION = "1.40"; # From Slackware