数码资讯
使用perl连接和操作postgresql数据库
使用环境:linux OpenSUSE
1)检查安装环境
(1) 查找DBI:zypper search DBI
安装DBI:zypper search perl-DBI
(2) 查找DBD Pg:zypper search DBD
安装DBD Pg:zypper install perl-DBD-Pg
2) 编写perl脚本:
#! /usr/bin/perl
use strict;
use Data::Dumper; --用于select返回数据集
use DBI;
my $driver="Pg";
my $database_name = "xxxx";
my $host = "localhost"; --"IP adrress"
my $port= "5432";
my $database ="dbi:$driver:dbname=$database_name;host=$host;port=$port"; -- 构造
my $db_user = "postgres"; --用户名
my $db_passwd = "postgres"; --密码
## 连接.
#my $dbh=DBI->connect("dbi:$driver:dbname=$database_name;host=$host;port=$port", $db_user, $db_passwd,{ RaiseError => 1, AutoCommit => 0 }) or die $DBI::errstr; --如果不构造前面的database,可以使用这句直接连接数据库。其中AutoCommit表示是否自动提交
my $dbh=DBI->connect($database,$db_user,$db_passwd) or die "can''t connect!"; -- 使用构造的database来连接数据库,AutoCommit默认为1
if ($dbh)
{ print "pgconnect ok!
";
print "my $dbh->port();
";
}else{
print "pgconnect false!
";
print "my $dbh->port();
";
}
my $sth = $dbh->prepare("select * from student " )or die "Syntax error:$!
"; -- 查询
$sth->execute(); --执行
while(my $row=$sth->fetchrow_hashref()) --获取select的结果集
{
print Dumper($row);
}
my $sth = $dbh->prepare("insert into student values(3,'zhang','m') " )or die "Syntax error:$!
"; --插入数据
$sth->execute();