perl中DBI模块为mysql数据库相关操作的接口,首先需要在环境中安装DBI模块。perl处理数据库操作的大致步骤如下:
#声明使用DBI模块
use DBI;
#设置数据库连接参数,指定连接数据库名,数据库所在服务器ip地址,连接用户名,密码
# db_name为要连接的数据库名,ip为数据库所在服务器ip地址
my $database=‘DBI:mysql:database=db_name;host=ip‘;
my $user=‘user_name‘;
my $pw=‘password‘;
#连接数据库
my $dbh=DBI->connect($database,$user,$pw,{‘RaiseError‘=>1})||die "can‘t connect to the database:$DBI::errstr\n";
# 如需要支持中文,则执行如下语句。以保证中文数据以用utf8编码方式存储到数据库中。同时注意使用数据库客户端时也要用uft8编码查看数据,否则查看到的数据可能乱码。
$dbh->do("set names utf8");
以下列举几个数据操作:
统计记录总数:
# key_word为表的主键,table_name
my $sql0="select count(key_word) from table_name";
my $sth0=$dbh->prepare("$sql0");
$sth0->execute();
#读取一行数据,并将数据放入数组中。
my $ref0= $sth0->fetchrow_array();
print "$ref0\n";
$sth0->finish();
循环处理查询并更新一张表的记录
# 从表中查询记录
my $sql="select * from table_name";
my $sth=$dbh->prepare("$sql");
$sth->execute();
# $sth->fetchrow_hashref()作为一个哈希表的引用取出下一行。这个方法取一行数据并且返回包含字段名/值对的一个哈希表的一个引用。
while(my $ref= $sth->fetchrow_hashref())
{
# 打印记录字段,id为主键
print "$ref->{‘id‘} $ref->{‘segment1‘} $ref->{‘segment2‘}\n";
#更新记录
my $update_sql="update table_name set segment1=value1 segment2=value2 where id=$ref->{‘id‘}";
my $update_sth=$dbh->prepare("$update_sql");
$update_sth->execute();
$update_sth->finish();
}
# 循环结束,进行结束操作。
$sth->finish();
#所有数据库操作结束,断开数据库连接。
$dbh->disconnect();