Perl 資料庫介面(DBI)是 Perl 中最強大的模組之一,它為各種資料庫提供了統一的介面,讓開發者能輕鬆操作資料庫並建立動態網頁。本文將詳細介紹如何使用 Perl DBI 連接 MySQL,包含安裝步驟、基本操作範本以及核心方法解析。
開始前,請確認系統已安裝 MySQL 和 Perl。接著透過 CPAN 安裝必要模組:
perl -MCPAN -e "install DBI"
perl -MCPAN -e "install DBD::MySQL"
或手動下載安裝 DBI 與 MySQL DBD。安裝完成後,在 MySQL 中建立測試資料表:
CREATE TABLE users (
id INT(4) PRIMARY KEY,
username VARCHAR(25),
country VARCHAR(2)
);
INSERT INTO users VALUES (1, 'john', 'IN'), (2, 'tom', 'US'), (3, 'layla', 'US');
以下是一個完整的腳本範例(表 A),展示連接、插入、查詢與斷開的標準流程:
#!/bin/perl
use DBI;
# 連接資料庫
my $dbh = DBI->connect(
"DBI:MySQL:database=db2;host=localhost",
"joe", "guessme",
{ 'RaiseError' => 1 }
);
# 執行 INSERT 查詢
my $rows = $dbh->do("INSERT INTO users (id, username, country) VALUES (4, 'jay', 'CZ')");
print "$rows row(s) affected ";
# 執行 SELECT 查詢
my $sth = $dbh->prepare("SELECT username, country FROM users");
$sth->execute();
# 遍歷結果集
while (my $ref = $sth->fetchrow_hashref()) {
print "User: $ref->{username} ";
print "Country: $ref->{country} ";
print "---------- ";
}
# 清理連接
$dbh->disconnect();
connect() 方法,傳入資料庫類型、主機名、資料庫名、帳號密碼等參數。do() 方法。prepare() 配合 execute() 方法。fetchrow_hashref() 逐行提取資料。disconnect() 關閉連接。RaiseError => 1 讓錯誤自動拋出異常,避免手動檢查每次呼叫的返回值。fetchrow_hashref() 以欄位名稱存取資料,程式碼更易讀維護。掌握這個腳本模組,未來開發 MySQL 應用將事半功倍。祝編程愉快!