Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
db-isql.pl
#!/usr/local/bin/perl -w
# db-isql.pl -- Ein interaktiver SQL-Monitor mit DBI-Unterstuetzung.
# Kommandozeilenoptionen:
my $prog = $0; $prog =~ s,.*/,,;
use Getopt::Std;
use vars qw($opt_u $opt_p $opt_d $opt_h);
getopts("hu:p:d:") or usage();
usage() if defined $opt_h;
$opt_u = 'manager' unless defined $opt_u;
$opt_p = 'mgrpass' unless defined $opt_p;
$opt_d = 'mydbase' unless defined $opt_d;
use DBI;
$dbh = DBI->connect("DBI:mysql:database=$opt_d", $opt_u, $opt_p,
{ RaiseError => 0});
die "Error: $DBI::errstr\n" if $DBI::err;
$/ = ';'; print "$prog> ";
while (<STDIN>) {
my $sql = $_; chomp $sql;
last if $sql !~ /\w/;
if ($sql =~ /^\s*?select/i) {
my $allrows = $dbh->selectall_arrayref($sql);
unless (defined $allrows) {
print "Error: $DBI::errstr\n";
next;
}
foreach my $row ( @{ $allrows } ) {
print join(',', @{ $row }), "\n";
}
} else {
my $nrows = $dbh->do($sql);
if ($DBI::err) {
print "Error: $DBI::errstr\n";
next;
}
print "Affected rows: $nrows\n";
}
} continue {
print "$prog> ";
}
$dbh->disconnect();
sub usage {
die <<"EOUSAGE";
Usage: $prog -h
$prog [-u user] [-p password] [-d database]
-h : Displays this help.
-u user : Name of database user.
-p password : Password of database user.
-d database : Name of database to connect to.
EOUSAGE
}
[Prev] [Up] [Relevant Chapter] [Next]
[Alte Quelle]
| Last modified: $Date: 2006/05/18 12:55:55 $ FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy |
|