• 登录
  • Subscribe RSS Feed
 

【Perl】连接MySQL

04月 9, 2011

Perl连接MySQL需要安装Perl的DBI和DBD:mysql模块

记录一下连接MySQL的脚本,供以后参考:

#!/bin/env perl
use strict;
use warnings;
use DBI;
# -------------------------------------------------------------------
# Func   : Main()
# -------------------------------------------------------------------
my $user   = "root";
my $passwd = "";
my $host   = "10.254.5.151";
my $db     = "test";
my $port   = 3306;
# connect database
my $dbh = &connet_mysql($host,$port,$db,$user,$passwd);
# execute sql
my $sql = qq{select * from tmp_zx limit 10};
my $sth = &execute_sql($dbh,$sql);
# get sql result
while ( my $result_ref = $sth->fetchrow_hashref() ) {
my $delim = "";
foreach ( keys %{$result_ref} ) {
print $delim,$_,"=",$result_ref->{$_};
$delim = " , ";
}
print "\n";
}
# end sql
$sth->finish();
# disconnect from database
$dbh->disconnect();
# -------------------------------------------------------------------
# Func   : Connect Database
# Sample :
#          &connet_mysql($host,$port,$db,$user,$passwd);
# -------------------------------------------------------------------
sub connet_mysql {
# setup database connection variables
my ($host,$port,$db,$user,$passwd) = @_;
my $driver = "mysql";
# connect to database
my $dsn = "DBI:$driver:database=$db;host=$host;port=$port";
my $mysql_dbh = DBI->connect($dsn,$user,$passwd) or die "Connect to mysql database error:". DBI->errstr;
$mysql_dbh->{AutoCommit} = 0;
$mysql_dbh->{RaiseError} = 1;
$mysql_dbh->{PrintError} = 1;
$mysql_dbh->do("set names gbk");
return $mysql_dbh;
}
# -------------------------------------------------------------------
# Func   : Execute SQL
# Sample :
#          &execute_sql($dbh,$sql);
# -------------------------------------------------------------------
sub execute_sql {
my ($dbh, $sql) = @_;
my $sth = $dbh->prepare($sql);
$sth->execute();
return $sth;
}

【附】Perl的引用:http://search.cpan.org/~nwclark/perl-5.8.6/pod/perlreftut.pod

--EOF--

tags: ,
posted in Perl by Orz DBA

Follow comments via the RSS Feed | 发表评论 | Trackback URL

Leave Your Comment

 
Powered by BlogCN.com - WordPress and MySQL. Theme by Shlomi Noach, openark.org