星星博客's Archiver

cnangel 发表于 2005-8-24 14:10

Perl操作Mysql数据库

[color=red]作者:小歪歪
email: [email]annysun@163.net[/email]
日期:00-7-6 上午 10:02:26[/color]
Perl操作Mysql数据库
[b]一. 安装DBI模块[/b]
步骤1:
从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:
Readme
DBI.ppd
DBI.tar.gz
步骤2:
在DOS窗口下,temp目录中运行下面的DOS命令:
ppm install DBI.ppd
如果提示无效命令,可在perl/bin目录下运行
[b]二. 安装DBD-Mysql模块[/b]
从软件下载中下载DBD-Mysql.zip,安装方法同一.
[b]三. 准备数据库[/b]
启动mysql,首先创建一个数据库mydata,然后创建一个表address
[code]
mysql> create database mydata;
Query OK, 1 row affected (0.00 sec)
mysql> use mydata;
Database changed
mysql> create table address (
-> id int(5) not null,
-> name varchar(40) not null,
-> email varchar(50) not null,
-> telephone int(12) null);
Query OK, 0 rows affected (0.05 sec)
[/code]
输入些数据:[code]
mysql> insert into address values (
-> 1,';Nighthawk';,';nighthawk@163.net';,92384092);
Query OK, 1 row affected (0.00 sec)[/code]
[b]四. 下面用perl程序来插入若干记录并做查询.[/b]
[code]
use DBI;
#连接数据库mydata
my $dbh = DBI->connect(';DBI:mysql:mydata';) or die "无法连接数据库: " . DBI->errstr;
print "插入若干记录\n";
my $sth = $dbh->prepare(q{
INSERT INTO address (id, name,email,telephone) VALUES (?, ?, ?, ?)
}) });
print "输入记录,回车结束:";
while (&#36;inputdata =<>) {
chop &#36;inputdata;
last unless(&#36;inputdata);
my (&#36;id, &#36;name,&#36;email, &#36;tel) = split( /,/, &#36;inputdata);
&#36;sth->execute(&#36;id, &#36;name, &#36;email,&#36;tel)
}
&#35; &#36;dbh->commit;
print "下面根据输入的名字打印出EMAIL地址和电话\n";
my &#36;sth = &#36;dbh->prepare(';SELECT * FROM address WHERE name=?';)
or die &#36;dbh->errstr;
print "请输入姓名,回车结束:";
while (&#36;inputname =<>) {
my @data;
chomp &#36;inputname;
last unless(&#36;inputname);
&#36;sth->execute(&#36;inputname) or die "错误: " . &#36;sth->errstr;
while (@data = &#36;sth->fetchrow_array()) {
print "Email:&#36;data[2]\t Telephone:&#36;data[3]\n";
}
}
&#35;断开连接
&#36;dbh->disconnect;

[/code]


页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.