星星博客's Archiver

cnangel 发表于 2005-8-25 20:04

用perl访问mysql数据库

[color=red]作者:小歪歪
日期:2001-1-12 16:36:22[/color]
[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
[quote]
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)
[/quote]
输入些数据: [quote]
mysql> insert into address values (
-> 1,’Nighthawk’,’nighthawk@163.net’,92384092);
Query OK, 1 row affected (0.00 sec) [/quote]
[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.