用Perl DBI连接MySQL数据库
|
源代码网整理以下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" 源代码网整理以下注意:你可以手动下载和安装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()方法结束会话。 源代码网整理以下当你下回继续在Perl中编写MySQL数据库连接代码时,这一脚本模块将可为你节省时间。编程快乐! 源代码网供稿. |
