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});