#!/usr/bin/perl
use strict;
use lib './my_app';
use my_app::db;
use my_app::page;
my $dbh = my_app::db->connect();
my $page = my_app::page->new(); # create a page object
for my $uid (1..3){
$page->init($dbh,$uid); # query database
$page->display;
}
####
package my_app::page;
# file ./my_app/page.pm
use strict;
my @field = qw(uid name text);
sub new {
my $class = shift;
return bless {},$class
}
sub init {
my ($self,$dbh,$uid) = @_;
my $fields = join ',',@field;
my $sql = "SELECT $fields
FROM pages
WHERE uid =?";
my $rec = $dbh->selectrow_arrayref($sql,undef,$uid);
$self->{$field[$_]} = $rec->[$_] for 0..$#field;
};
sub display {
my $self = shift;
printf "
uid : %d
name : %s
text : %s\n", map { $self->{$_} } @field;
};
1;
####
package my_app::db;
# file ./my_app/db.pm
use strict;
use DBI;
sub connect {
my $server = 'localhost';
my $database = "test";
my $user = "****";
my $pw = "****";
my $dsn = "dbi:mysql:$database:$server:3306";
my $dbh = DBI->connect($dsn, $user, $pw,
{ RaiseError => 1, AutoCommit => 1 } );
return $dbh;
}
1;