www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Beispielprogramm

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
FreeBSD Logo