2013-04-11 52 views
2
use DBI; 
my $db_host = 'localhost'; 
my $db_user = 'postgres'; 
my $db_pass = '12345'; 
my $db_name = 'postgres'; 
my $db = "dbi:pg:dbname=${db_name};host=${db_host}"; 
$dbh = DBI->connect($db, $db_user, $db_pass,{ RaiseError => 1, AutoCommit => 0 }) || die "Error connecting to the database: $DBI::errstr\n"; 
my $query = "SELECT * FROM random_table"; 
$ref = $dbh->selectcol_arrayref($query); 
print join("\n", @$ref); 

當我執行此文件時。我收到一個錯誤。它說:如何使用perl連接到postgresql

DBD :: PG初始化失敗:通過包「DBD :: PG」

我是否需要安裝一些驅動程序連接到無法找到對象的方法「司機」數據庫..?

+0

首先,您必須'使用strict'和'use warnings',並在使用它們時聲明'$ dbh'和'$ ref' – Borodin 2013-04-11 23:28:07

回答

12

這是dbi:Pg而不是dbi:pg。案件事宜。

+1

它是'PostgreSQL',而不是'postgresql',很可能是錯誤的來源。我想這就是爲什麼更好的程序員對'perl'和'Perl'之間的差異感到如此激動:它*有所作爲*。如果通過包「DBD :: pg」'得到類似'無法定位對象方法的驅動程序'的消息,首先要做的事情是想*我拼寫正確嗎?* – Borodin 2013-04-11 23:26:24