DBD-mysql-SimpleMySQL
view release on metacpan or search on metacpan
SimpleMySQL.pm view on Meta::CPAN
$MOD_DATE = q|$Date: 2004/04/28 20:07:27 $|;
$NAME = "SimpleMySQL.pm";
$DEBUG = 0;
$DEBUG_FILE = 0;
#####
# Methods
###
#
#
sub pnl () {
print "\n";
}
sub nl () {
return "\n";
}
sub debug {
my $message = shift;
my $level = shift;
$DEBUG = 0 unless $DEBUG;
$level = 1 unless $level;
if ($DEBUG >= $level) {
my $tabs = '';
my $i = 0;
my @lines = ();
while (my @info = caller($i)) {
push @lines, "$info[0], $info[2], $info[3]";
$lines[$i] .= " $message" if ($i == 1);
$tabs .= "\t" if ($i > 0);
$i++;
}
$lines[0] .= " $message" if ($i < 2);
push @lines, "END DEBUG";
my $fh = 0;
if (-f $DEBUG_FILE and -w $DEBUG_FILE) {
open FILE, ">>$DEBUG_FILE" or warn "Could not open $DEBUG_FILE:$!";
$fh = \*FILE;
} else {
$fh = \*STDERR;
}
for my $line (@lines) {
print $fh $tabs, $line, "\n" if($line);
}
close $fh if (-f $DEBUG_FILE and -w $DEBUG_FILE);
}
}
sub dbconnect ($) {
my $dbinfo = shift;
${$dbinfo}{host} = 'localhost' unless(defined(${$dbinfo}{host}));
${$dbinfo}{user} = scalar(getpwuid($<)) unless(defined(${$dbinfo}{user}));
${$dbinfo}{pass} = '' unless(defined(${$dbinfo}{pass}));
${$dbinfo}{port} = '3306' unless(defined(${$dbinfo}{port}));
${$dbinfo}{RaiseError} = 0 unless(defined(${$dbinfo}{RaiseError}));
${$dbinfo}{AutoCommit} = 1 unless(defined(${$dbinfo}{AutoCommit}));
unless(defined(${$dbinfo}{dsh})) {
${$dbinfo}{dsh} .= "DBI";
${$dbinfo}{dsh} .= ":mysql";
${$dbinfo}{dsh} .= ":host=${$dbinfo}{host}";
${$dbinfo}{dsh} .= ":datasbase=${$dbinfo}{database}" unless(defined(${$dbinfo}{database}));;
${$dbinfo}{dsh} .= ":port=${$dbinfo}{port}";
}
my $dbh = DBI->connect(
$$dbinfo{dsh},
$$dbinfo{user},
$$dbinfo{pass},
{
RaiseError => ${$dbinfo}{RaiseError},
AutoCommit => ${$dbinfo}{AutoCommit}
}
);
unless(ref($dbh)){
debug("dbconnect error: $DBI::errstr", 0);
return 0;
}
return $dbh;
}
sub dbselect ($$) {
my $dbh = shift;
my $query = shift;
debug("executing query \n$query", 3);
my $sth = $dbh->prepare($query);
$sth->execute;
if ($DBI::errstr) {
debug("dbselect error: $DBI::errstr\n\tQuery is $query", 0);
$sth = 0;
}
return $sth;
}
sub dbselect_arrayref ($$) {
my $dbh = shift;
my $sql = shift;
my $sth = dbselect($dbh, $sql);
return 0 unless ($sth);
my @return = ();
while (my $r = $sth->fetchrow_hashref) {
push @return, $r;
}
return \@return;
}
sub dbdo ($$) {
( run in 1.012 second using v1.01-cache-2.11-cpan-39bf76dae61 )