A Database Example
- Raising exceptions - the hard way
my $attr = { AutoCommit => 0 };
my $dsn = 'dbi:Pg:dbname=products';
sub get_categories_by_mgr {
my($prod_mgr_id) = @_;
my $dbh = DBI->connect($dsn, $user, $pswd, $attr)
or die $DBI::errstr;
my $sql = 'SELECT * FROM prod_category WHERE prod_mgr_id = ?';
my $sth = $dbh->prepare($sql) or die $dbh->errstr;
$sth->execute($prod_mgr_id) or die $dbh->errstr;
my @categories;
while(my $row = $sth->fetchrow_arrayref) {
push @categories, $row;
}
die $sth->errstr if $sth->err;
$dbh->disconnect or die $dbh->errstr;
return \@categories;
}