連接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=
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=
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);
From http://linux.tnc.edu.tw/techdoc/perl_intro/c1239.html
Jun 30, 2008
Perl 連接 MySQL
Subscribe to:
Post Comments (Atom)
0 意見:
Post a Comment