Egg::Mod::EasyDBI is a DBI module easily made available.
SYNOPSIS
use Egg::Mod::EasyDBI {
debug => 1,
trace => 1,
upgrade_ok => 1,
clear_ok => 1,
alias => {
members => 'member_management_master',
...
},
sql_abstract=> {
logic => 'and',
......
},
};
use DBI;
my $dbh= DBI->connect( ...... );
my $es= Egg::Mod::EasyDBI->new($dbh);
$ed->trace(1);
my $db= $es->db;
my $members= $db->members;
# SELECT * FROM members WHERE id = ?
my $hoge= $members->hashref('id = ?', $id)
|| die q{ Data is not found. };
# SELECT * FROM members WHERE age > ?
my $list= $members->arrayref('age > ?', 20)
|| die q{ Data is not found. };
# SELECT id FROM members WHERE user = ?
my $id= $members->scalar('id', 'user = ?', 'boo')
|| die q{ Data is not found. };
# The processed list is acquired.
my $list= $members->arrayref('age > ?', [20], sub {
my($array, %hash)= @_;
push @$array, "$hash{id} : $hash{user} : $hash{age}";
}) || die q{ Data is not found. };
# The data that can be immediately used is acquired.
my $text;
$members->arrayref('age > ?', [20], sub {
my($array, %hash)= @_;
$text.= 1, user=> 'zoo', age=> 20 )
|| die q{ Fails in regist of data. };
# UPDATE members SET other = ?, age = age + 1 WHERE id = ?
$members->update( id=> 1, other=> 'gao', age=> 1 )
|| die q{ Fails in update of data. };
or
$members->update('id = ?', { id=> [1], other=> 'gao', age=> 1 })
|| die q{ Fails in update of data. };
# The record is added when failing in the update.
$members->update_insert( user=> 'zaza', age=> 22 );
# It adds it if there is no record.
$members->find_insert( user=> 'zaza', age=> 22 );
# UPDATE members SET age = ?
$members->upgrade( age=> 20 );
# DELETE FROM members WHERE user = ?
$members->delete('user = ?', 'zaza');
# DELETE FROM members;
$members->clear;
# SQL statement is used as it is.
my $hash = $es->hashref(q{SELECT * FROM members WHERE id = ?}, $id);
my $list = $es->arrayref(q{SELECT * FROM members WHERE age > ?}, $age);
my $scalar= $es->scalar(q{SELECT user FROM members WHERE id = ?}, $id);
$es->do(q{INSERT INTO members (id, user, age) VALUES (?, ?, ?)}, $id, $user, $age);
# [[SQL::Abstract]] support.
my $hash = $members->abs_hashref(@fields, %where, @order);
my $array= $members->abs_arrayref(@fields, %where, @order);
$members->abs_insert(%fieldvals || @values);
$members->abs_update(%fieldvals, %where);
$members->abs_delete(%where);
# Table uniting.
#
# SELECT a.user, a.message, b.id, b.age, c.email_addr
# FROM messages a JOIN members b ON a.user = b.user
# LEFT JOIN profiles c ON b.id = c.id
# WHERE a.message_id = ?
#
my $jdb= $es->db(qw/ messages = members:a.user=b.user < profiles:b.id=c.id /);
my $list= $jdb->arrayref(
'a.user, a.message, b.id, b.age, c.email_addr',
'a.message_id = ?', $msgid
);
# If you process the transaction
# If commit_ok is undefined, it is always rollback.
$es->commit_ok(1);
$es->close;
$dbh->disconnect;
Requirements:
· Perl
Product's homepage
Requirements:
· Perl