#!perl
use strict;
use warnings;
use DBI;
my $DBH = get_dbh(); # connect to db
#$DBH->do('DELETE FROM tbl1');
# insert records (ID_NUMBER,PHONE) into tbl1
# Tests
print insert(1,'00001');
print insert(2,'00002');
print insert(2,'00002');
print insert(2,'00003');
print insert(3,'00002');
print insert(2,undef);
print insert(3,undef);
print insert(undef,'00002');
print insert(undef,'00003');
print insert(undef,undef);
sub insert {
my ($ID_NUMBER,$PHONE) = @_;
my @error = ();
if ($PHONE) {
my $SQL = 'SELECT COUNT(*) FROM tbl1
WHERE PHONE = ?';
my ($count) = $DBH->selectrow_array($SQL,undef,$PHONE);
push @error,"PHONE exists ($PHONE)" if $count;
} else {
push @error,"PHONE blank";
}
if ($ID_NUMBER){
my $SQL = 'SELECT COUNT(*) FROM tbl1
WHERE ID_NUMBER = ?';
my ($count) = $DBH->selectrow_array($SQL,undef,$ID_NUMBER);
push @error,"ID_NUMBER exists ($ID_NUMBER)" if $count;
} else {
push @error,"ID_NUMBER blank";
}
if (@error){
return "Errors : @error\n"
} else {
my $SQL = 'INSERT INTO tbl1(PHONE, ID_NUMBER)
VALUES(?,?)';
my $count = $DBH->do($SQL,undef,$PHONE, $ID_NUMBER);
return "$count record inserted ($PHONE,$ID_NUMBER)\n";
}
}
sub get_dbh{
my $database = "test"; my $user = ""; my $pw = "";
my $dsn = "dbi:mysql:$database:localhost:3306";
my $dbh = DBI->connect($dsn, $user, $pw,
{ RaiseError=>1, AutoCommit=>1 } );
return $dbh;
}
poj |