Perl中一個很重要的模塊就是DBI模塊(Perl Database Interface,數(shù)據(jù)庫接口)。DBI模塊為很多不同的數(shù)據(jù)庫提供了一個統(tǒng)一的接口。Perl通過此接口可以很容易對數(shù)據(jù)庫進行操作。結構圖如下: 下面說下Perl如何對MySQL數(shù)據(jù)庫進行操作。 1. 首先要確保Perl及MySQL
Perl中一個很重要的模塊就是DBI模塊(Perl Database Interface,數(shù)據(jù)庫接口)。DBI模塊為很多不同的數(shù)據(jù)庫提供了一個統(tǒng)一的接口。Perl通過此接口可以很容易對數(shù)據(jù)庫進行操作。結構圖如下:
下面說下Perl如何對MySQL數(shù)據(jù)庫進行操作。
1. 首先要確保Perl及MySQL數(shù)據(jù)庫已經(jīng)安裝。然后用cpan或者是ppm圖形化界面來安裝.
cpan> install DBI #安裝數(shù)據(jù)庫模塊 cpan> install DBD::mysql #安裝數(shù)據(jù)庫驅動
2. 然后準備測試用數(shù)據(jù)庫腳本: (admin.sql)
C:\Program Files\MySQL\MySQL Server 5.5\bin> mysql -u root -pabcd
#!C:\Perl\bin\perl -w #導入DBI模塊 use DBI; use utf8; use strict; use warnings; #連接數(shù)據(jù)庫 my $dbdrive = "mysql"; my $dbname = "admin"; my $hostname = "localhost"; my $port = "3306"; #MySQL數(shù)據(jù)庫缺省端口 my $database = "DBI:$dbdrive:$dbname:$hostname:$port"; my $db_user = "root"; my $db_pwd = "abcd"; my $dbh = DBI->connect($database,$db_user,$db_pwd) or die DBI::errstr; #執(zhí)行插入操作 my $rows = $dbh->do("insert into admin_info(admin_id,admin_user,admin_pwd) VALUES (003, 'root', 'root')"); print "$rows row(s) affected!\n"; #執(zhí)行查詢操作 my $sth = $dbh->prepare("select * from admin_info"); $sth->execute(); #通過結果集進行迭代,并打印 while(my $ref = $sth->fetchrow_hashref()) { print "admin_id: $ref->{'admin_id'}\n"; print "admin_user: $ref->{'admin_user'}\n"; print "admin_pwd: $ref->{'admin_pwd'}\n"; print "----------n"; } #結束會話連接 $dbh->disconnect();
1. 使用connect()函數(shù)建立數(shù)據(jù)庫連接。
2. 使用do()或prepare()以及execute()函數(shù)進行插入,查詢,刪除,更新操作
3. 使用fetchrow_hashref()函數(shù),配合while,將遍歷數(shù)據(jù),方便打印操作
4. 使用disconnect()函數(shù),斷開數(shù)據(jù)庫連接,結束文件句柄
總體來說,跟其他語言連數(shù)據(jù)庫操作步驟類似。
其他標志說明:
Perl推薦使用下列標志作為約定
$dsn 數(shù)據(jù)庫源名 $dbh 數(shù)據(jù)庫處理對象 $sth 處理對象聲明 $h 任意上述三種處理類型 ($dbh, $sth, or $drh) $rc 通用返回代碼(boolean: true=ok, false=error) $rv 通用返回值(通常為一個整數(shù)) @ary 數(shù)據(jù)庫中返回的數(shù)據(jù)列表 $rows 要處理的行數(shù)(如果行數(shù)不存在的話,返回值為:-1) $fh 文件句柄 undef NULL值在Perl中表示未定義的值 \%attr 引用哈希屬性值傳給方法
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com