package Event;
use base qw(Class::DBI);
# Tell Class::DBI a little about yourself
Event->table('events');
Event->columns('All', qw( name given_by location date time ) );
Event->columns('Primary', 'name');
Event->set_db('Main', 'dbi:mysql:xxx', 'xxx', 'xxx' );
1;
####
#!/usr/bin/perl -w
use DBI;
use Guest;
use Event;
use Benchmark;
# Connect to database
my $dbh = DBI->connect( "dbi:mysql:web_stuff", 'xxx', 'xxx' )
or die "Can't connect to MySQL database: $DBI::errstr\n";
# Need to benchmark these solutions
sub modify_event {
### Test (query) the Event object
my $this_event = Event->retrieve('Party');
### Test (modify) the Event object
$this_event->time('9:00 PM');
$this_event->commit;
}
sub modify_guest {
# Fetch One
my $last_name = "Rodriguez";
my $q_last_name = $dbh->quote($last_name);
my $first_names = "Alex";
my $q_first_names = $dbh->quote($first_names);
my ($add,$city,$state,$zip,$cnt) =
$dbh->selectrow_array( "SELECT address, city, state,
zip, est_count
FROM guest_list
WHERE last_name = $q_last_name
AND first_names = $q_first_names"
);
my $guest = new Guest ($last_name,$first_names,
$add,$city,$state,$zip,$cnt);
#### Test Update
$guest->state("TX");
$guest->update($dbh);
}
timethese(1000, {modify_event => 'modify_event()',
modify_guest => 'modify_guest()' });
$dbh->disconnect();
exit;
##
##
Benchmark: timing 1000 iterations of modify_event, modify_guest...
modify_event: 7 wallclock secs ( 5.25 usr + 0.26 sys = 5.51 CPU)
modify_guest: 5 wallclock secs ( 2.89 usr + 0.15 sys = 3.04 CPU)