perl 连接 mysql 数据库

1.# cpan DBI
2.perl 连接数据库 脚本

#!/usr/bin/perl -w

#The script is used to connect mysql and show table members of the 
#database library 

use DBI();
#connect

my $dbh = DBI->connect("DBI:mysql:database=library;mysql_socket=/data01/mysql/mysql.sock;host=localhost","root","1234567",
        {'RaiseError'=>1,'AutoCommit'=>0});
#execute query

#my $sth = $dbh->prepare("SELECT * from members");

#$sth->execute();

eval 
{
    #insert data to members

        $dbh->do("insert into members values (NULL,'cao','jiang','55256262','ceaglechina\@gmail.com')");
        $dbh->commit();

};
#iterate through resultset

my $sth = $dbh->prepare("SELECT * from members");
$sth->execute();
print "member_id\tfname\tlname\ttel\t\temail","\n";
while (my $ref = $sth->fetchrow_hashref()) {
  print "$ref->{'member_id'}\t\t$ref->{'fname'}\t$ref->{'lname'}\t$ref->{'tel'}\t$ref->{'email'}\n";
}

#Delete the data

eval
{
    $dbh->do("delete from members where fname = 'cao' ");
    $dbh->commit();

};

$sth->execute();
print "member_id\tfname\tlname\ttel\t\temail","\n";
while (my $ref = $sth->fetchrow_hashref()) {
  print "$ref->{'member_id'}\t\t$ref->{'fname'}\t$ref->{'lname'}\t$ref->{'tel'}\t$ref->{'email'}\n";
}



if ($@){
    print "Transaction aborted:$@";
    $dbh->rollback();
}
#clean up

$sth->finish();
$dbh->disconnect();

报错:install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC
解决:yum install perl-DBD-MySQL
报错:DBI connect('database=library;host=localhost','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
解决: my $dbh = DBI->connect("DBI:mysql:database=library;mysql_socket=/data01/mysql/mysql.sock;host=localhost","root","1234567",
        {'RaiseError'=>1,'AutoCommit'=>0});

你可能感兴趣的:(perl,dbi,DBDmysql)