Perl 透過 DBI (Database Interface) 模組配合 DBD::mysql 驅動,即可高效操作 MySQL。本文提供標準連線範本與核心操作示範。
# Ubuntu/Debian
sudo apt-get install libdbi-perl libdbd-mysql-perl
# CentOS/RHEL
sudo yum install perl-DBI perl-DBD-MySQL
# CPAN 通用安裝
cpan DBI DBD::mysql
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
# 連線參數
my $dsn = "DBI:mysql:database=eygle;host=localhost;port=3306";
my $user = "username";
my $pass = "password";
# 建立連線 (RaiseError 自動拋出異常)
my $dbh = DBI->connect($dsn, $user, $pass, {
RaiseError => 1,
PrintError => 0,
AutoCommit => 1,
mysql_enable_utf8 => 1
}) or die "連線失敗: $DBI::errstr";
print "連線成功!\n";
# 1. 插入資料 (do 適用非查詢)
my $rows = $dbh->do("INSERT INTO test (id, name) VALUES (1, 'eygle')");
print "插入 $rows 筆資料\n";
# 2. 查詢資料 (prepare/execute/fetch 循環)
my $sth = $dbh->prepare("SELECT name FROM test");
$sth->execute();
while (my $ref = $sth->fetchrow_hashref()) {
print "Name: $ref->{name}\n";
}
$sth->finish();
# 3. 更新與刪除同樣用 do 或 prepare/execute
# $dbh->do("UPDATE test SET name='new' WHERE id=1");
# 關閉連線
$dbh->disconnect();
print "斷開連線\n";
大量匯入資料時,可用 `$dbh->begin_work` 開啟交易,批次 `execute` 後一次 `commit`,並暫時關閉索引 (`ALTER TABLE ... DISABLE KEYS`) 大幅提升速度。