转自:url:http://poleon.itpub.net/post/1985/233796
Perl中一个最酷的模块就是Perl数据库接口(Perl Database Interface,简称DBI)。通过提供一系列在内部上能够转化成原始调用函数的功能,DBI模块为很多不同的数据库提供了一个统一的接口。由此,使用Perl就可以很容易地利用数据库和建立动态Web网页。
当前,MySQL是广泛用于Web网站开发的数据库,它是一种免费、开源的SQL操作。本期我们将讲述到如何实现Perl与MySQL相互通讯的操作,将为你介绍由DBI提供的重要方法,在开发过程中讲述到一个简单的脚本模板。这一操作的前提是假设你的系统已经安装了MySQL和Perl。
开始,下载并安装Perl DBI模块和MySQL DBD。通过在Perl 命令行中运行以下命令即可完成安装过程:
perl> perl -MCPAN -e "install DBI"
perl> perl -MCPAN -e "install DBD::mysql"
现在Perl DBI和MySQL DBD应该安装在你的系统中。
然后,通过在MySQL用户端命令行输入以下命令,以建立一个用于SQL查询的表格。
mysql> CREATE TABLE users (id INT(4) PRIMARY KEY, username VARCHAR(25), country VARCHAR(2));
Query OK, 0 rows affected (0.11 sec)
mysql> INSERT INTO users VALUES (1, 'john', 'IN'), (2, 'tom', 'US'), (3, 'layla', 'US');
Query OK, 3 rows affected (0.11 sec)
Records: 3 Duplicates: 0 Warnings: 0
一旦建立表格,继续使用DBI方法建立一个脚本模板(见表A)。
表A
#!/bin/perl
# load module
use DBI;
# connect
my $dbh = DBI->connect("DBI:mysql:database=db2;host=localhost", "joe", "guessme", {'RaiseError' => 1});
# execute INSERT query
my $rows = $dbh->do("INSERT INTO users (id, username, country) VALUES (4, 'jay', 'CZ')");
print "$rows row(s) affectedn";
# execute SELECT query
my $sth = $dbh->prepare("SELECT username, country FROM users");
$sth->execute();
# iterate through resultset
# print values
while(my $ref = $sth->fetchrow_hashref()) {
print "User: $ref->{'username'}n";
print "Country: $ref->{'country'}n";
print "----------n";
}
# clean up
$dbh->disconnect();
四个步骤
当使用Perl DBI执行一个SQL 查询时,请遵循四个简单的步骤:
当你下回继续在Perl中编写MySQL数据库连接代码时,这一脚本模块将可为你节省时间。编程快乐!