網路管理語言 Perl 入門與實作: | ||
---|---|---|
<<< Previous | Next >>> |
本章介紹 Perl 搭配 MySQL 的方法
Perl 要搭配資料庫,必須安裝以下模組:
1. DBI : Perl 的 DataBase Interface 的簡稱, 請至 ftp2.tnc.edu.tw/pub/unix/perl/CPAN/modules/by-module/DBI 抓取:DBI-1.37.tar.gz tar xvzf DBI-1.37.tar.gz cd DBI-1.37 perl Makefile.PL make make test make install 2. Data-ShowTable 請至 ftp2.tnc.edu.tw/pub/unix/perl/CPAN/modules/by-module/Data 抓取:Data-ShowTable-3.3.tar.gz 安裝方法同 DBI。 3. DBD::資料庫driver 因為我想和 MySQL 搭配,所以必須安裝 DBD::mysql 的驅動程式 請至 ftp2.tnc.edu.tw/pub/unix/perl/CPAN/modules/by-module/DBD 抓取:Msql-Mysql-modules-1.2219.tar.gz 或 DBD-mysql*.tar.gz 安裝方法同 DBI。 |
至此,Perl 即可和 MySQL 一起運作了! 注意:通常,若您使用的是套件版的 Perl/MySQL,通常系統中已有相關的 DBI/DBD 了,比如:perl-DBI-1.32*.rpm (即 DBI)/ perl-Mysql-1.22_19*.rpm(即 DBD::mysql),因此,您不一定要安裝上面這些 tarbll 模組。
#! /usr/bin/perl use DBI; use strict; my $db="test"; my $host='localhost'; my $user='root'; my $password='ppp123'; my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host", $user, $password, {RaiseError => 1}); open(FHD, "stu.csv") or die; while (my $line=<FHD>) { chomp($line); my ($f1, $f2, $f3, $f4, $f5)=split(/\,/,$line); if ($f1) { my $q=qq[ INSERT INTO stu_table VALUES ("$f1", "$f2", "$f3", "$f4", "$f5") ]; my $sth=$dbh->prepare($q); unless($sth->execute) {die "$!\n";} } } close(FHD); |
實例:
我在 test 這個資料庫中開了一個 table 叫 aaa,其結構如下: CREATE TABLE `aaa` ( `no` varchar(10) NOT NULL default '', `name` varchar(12) NOT NULL default '' ) 其中 no 代表身份證字號,name 代表姓名。 我準備用它來儲存 studdemo.csv 中的學生身份證及姓名! 程式如下: #! /usr/bin/perl use DBI; use strict; my $db="test"; my $host='localhost'; my $user='root'; my $password='1234'; my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host", $user, $password, {RaiseError => 1}); open(FHD, "stu.csv") or die; while (my $line=<FHD>) { chomp($line); my ($f1, $name, $f3, $f4, $f5, $f6, $f7, $pslno, $f9)=split(/\,/,$line); if ($f1) { my $q=qq[ INSERT INTO aaa VALUES ("$pslno", "$name") ]; my $sth=$dbh->prepare($q); unless($sth->execute) {die "$!\n";} } } close(FHD); |
<<< Previous | Home | Next >>> |
22. 圖型介面 | 24. 樂彩號碼產生器 |