本章介紹如何使用Perl DBI 與MySQL介面。我們不討論DBI 的基本原理或體繫結構。有關DBI 這些方面的資訊(特別是與C 和PHP API 的比較),請參閱第5 章。
本章的舉例動用了範例資料庫samp_db,使用了學分儲存方案和曆史同盟需要的表。想要從本章中取得最大收穫,最好瞭解一些有關Perl 的知識。如果不想這樣,那麼通過拷貝這裡看到的範例代碼,也能有所協助,並可以編寫自己的指令碼,不過找一本好的Perl 書,可能仍是一件非常有價值的投資。有這樣一本書,名為《Programming Perl 》,第二版是由Wa l l、C h r i s t i a n s e n、Schwartz 和P o t ter(O’ Reilly出版社19 9 6出版)撰寫的。(機械工業出版社1999年已出版了《Perl 5編程詳解》—編者注。)
DBI 的目前的版本為1. 13,但是此處的大部分介紹也可用於更早的1.xx 版本。請注意,對所介紹的早期版本中沒有出現的特性作了說明。
MySQL的DBI 需要至少為5.004_05 的Perl 版本。另外還必須安裝Msql-Mysql 模組和Data-Dumper Perl 模組,以及MySQLC 客戶機庫和一些標頭檔。如果計劃編寫基於Web 的DBI 指令碼,則要使用CGI.pm 模組。本章中,這個模組用於與Apache Web 服務器的串連。如
果需要獲得這樣的程式包,請參閱附錄A。該附錄中也給出了獲得本章開發的範例指令碼的說明。可以下載這些指令碼,不必自己鍵入。
很大程度上,本章介紹Perl DBI 的方法和變數只是出於討論的需要。至於所有方法和變數的更全面的列表,請參閱附錄G。如果要使用DBI 的任何部分,可以用該附錄作為進一步研究的背景材料。可通過運行下面的命令來得到聯機文檔:
% perldoc DBI
% perldoc DBI::FAQ
% perldoc DBI::mysql 在資料庫驅動程式( DB D)級,MySQL的驅動程式建立在MySQLC 客戶機庫的基礎之上,因而具有它的某些特性。有關該庫的詳細資料,請參閱第6 章。
Perl 指令碼為文字檔,可以利用任何文字編輯器來建立它們。本章所有的Perl 指令碼都遵從UNIX 的約定,第一行以‘ #!’開始,接著是執行這個指令碼要使用的程式路徑名。第一行如下所示:
#! /usr/bin/perl
如果在您的系統中,路徑名不是Perl,如為/usr/local/bin/perl5 或/ o p t / b i n / per l,則需要修改‘# !’行。否則,Perl 指令碼不能在系統中正確運行。
在‘#!’之後含有一個空格,這是因為有的系統會將‘ #! /’解釋為4 個位元組的怪異數字,所以如果沒有空格,則忽略這一行,這樣,會將相應指令碼作為外殼指令碼來對待。
在UNIX 系統中,應該使Perl 指令碼成為可執行檔,以便只要鍵入其名稱就可執行。為使指令碼成為可執行檔,對檔案模式做如下更改即可:
% chmod +X script_name
如果在Windows 下使用ActiveState Perl,則不必使指令碼成為可執行檔,可如下運行一個指令碼:
C:\> perl script_name