本文为大家介绍如何实现Perl 与mysql相互通讯的操作,DBI提供的重要方法,在开发过程中讲述到一个简单的脚本模板。
以下操作的前提是假设你的系统已经安装了 MySQL和Perl。
下载和安装
开始,下载并安装 Perl DBI模块和MySQL DBD。通过在Perl 命令行中运行以下命令即可完成安装过程:
perl> perl -MCPAN -e "install DBI"
perl> perl -MCPAN -e "install DBD::mysql"
注 意:可以手动下载和安装DBI和MySQL DBD。
现在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) affected ";
# 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-> ";
print "Country: $ref-> ";
print "---------- ";
}
# clean up
$dbh->disconnect();
使用Perl DBI执行一个SQL 查询时,请遵循四个简单的步骤:
1、开始时,通过调用connect() 方法初始化数据库的句柄。connect() 方法接收连接参数并作为字符串, 包括数据库类型("mysql"),主机名称("localhost"),以及数据库名称("db2")。 数据库名称("joe")和密码("guessme")作为第二和第三个变量提供给connect() 方 法。
2、建立SQL查询字符串,并使用do()或prepare()以及execute()方 法执行查询语句。do()方法是针对于一次性使用的INSERT,UPDATE或者DELETE查 询,但prepare()和execute()方法针对的是SELECT查询。使用这些方法得到 的对象将有所不同,这取决于查询的类型,查询结果是否成功也是如此。成功的SELECT查询将返回一个结果对象,成功的INSERT/UPDATE/DELETE 查询将返回一些相关的行。而不成功的查询将返回一个错误。
3、对于SELECT查询,结果对象将被进一步 处理以提取数据。使用一个循环,fetchrow_hashref()方法将返回每一记录作为Perl的信号。
4、通过调用disconnect()方法结束会话。