linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > perl >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·perl入门学习指南
·perl入门教程:Perl 的变量
·perl入门教程:Perl的语法与C语
·Perl文件及目录操作
·perl入门教程:Perl概述
·perl入门教程:正则表达式
·perl 学习笔记
·Perl常用系统函数
·perl中传递和存储文件句柄
·Perl连接Oracle数据库的方法
·curl+perl的自动MAIL报警程序
·使用 perldoc 找文档
·perl入门教程:Perl 程序的属性
·Perl新手的误区和新手必读
·Perl命令行应用介绍
最新文章
·perl 学习笔记
·Perl 特殊变量
·perl Base64码的获取
·perl 父子进程的数据库连接继承
·工作中的实用 perl 脚本
·perl中传递和存储文件句柄
·curl+perl的自动MAIL报警程序
·Perl类包的动态调用
·使用open创建的管道进行父子进
·perl 执行一个系统命令(svn in
·windows平台下根据可执行文件名
·关联数组(hash)
·Perl语言在风险评估的系统基础
·在Perl/CGI中使用模板
·PERL CGI 常见问题
Google
 
用Perl DBI连接MySQL数据库
[ 作者:  加入时间:2007-10-11 17:19:55  来自:Linux联盟收集整理 ]

es2Linux联盟
 es2Linux联盟
 

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"es2Linux联盟
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));es2Linux联盟
Query OK, 0 rows affected (0.11 sec)

mysql> INSERT INTO users VALUES (1, 'john', 'IN'), (2, 'tom', 'US'), (3, 'layla', 'US');es2Linux联盟
Query OK, 3 rows affected (0.11 sec)es2Linux联盟
Records: 3  Duplicates: 0  Warnings: 0

一旦建立表格,继续使用DBI方法建立一个脚本模板(见表A)。

表A

#!/bin/perl

# load modulees2Linux联盟
use DBI;

# connectes2Linux联盟
my $dbh = DBI->connect("DBI:mysql:database=db2;host=localhost", "joe", "guessme", {'RaiseError' => 1});

# execute INSERT queryes2Linux联盟
my $rows = $dbh->do("INSERT INTO users (id, username, country) VALUES (4, 'jay', 'CZ')");es2Linux联盟
print "$rows row(s) affected ";

# execute SELECT queryes2Linux联盟
my $sth = $dbh->prepare("SELECT username, country FROM users");es2Linux联盟
$sth->execute();

# iterate through resultsetes2Linux联盟
# print valueses2Linux联盟
while(my $ref = $sth->fetchrow_hashref()) {es2Linux联盟
    print "User: $ref-> ";es2Linux联盟
    print "Country: $ref-> ";es2Linux联盟
    print "---------- ";es2Linux联盟
}

# clean upes2Linux联盟
$dbh->disconnect();

四个步骤

当使用Perl DBI执行一个SQL 查询时,请遵循四个简单的步骤:

开始时,通过调用connect() 方法初始化数据库的句柄。connect() 方法接收连接参数并作为字符串,包括数据库类型("mysql"),主机名称("localhost"),以及数据库名称("db2")。数据库名称("joe")和密码("guessme")作为第二和第三个变量提供给connect() 方法。 es2Linux联盟
建立SQL查询字符串,并使用do()或prepare()以及execute()方法执行查询语句。do()方法是针对于一次性使用的INSERT,UPDATE或者DELETE查询,但prepare()和execute()方法针对的是SELECT查询。使用这些方法得到的对象将有所不同,这取决于查询的类型,查询结果是否成功也是如此。成功的SELECT查询将返回一个结果对象,成功的INSERT/UPDATE/DELETE 查询将返回一些相关的行。而不成功的查询将返回一个错误。 es2Linux联盟
对于SELECT查询,结果对象将被进一步处理以提取数据。使用一个循环,fetchrow_hashref()方法将返回每一记录作为Perl的信号。 es2Linux联盟
通过调用disconnect()方法结束会话。 es2Linux联盟
当你下回继续在Perl中编写MySQL数据库连接代码时,这一脚本模块将可为你节省时间。编程快乐!es2Linux联盟

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·Perl DBI 入门  (2007-10-09 13:09:23)
 ·教你轻松掌握mysql数据库字符集和校对  (2007-10-09 10:17:21)
 ·了解MySQL数据库中的CONVERT()函数  (2007-10-08 11:22:58)
 ·教你轻松掌握MySQL数据库中已压缩表特征  (2007-09-30 11:37:24)
 ·掌握MySQL数据库中动态表特征  (2007-09-30 11:36:52)
 ·在MySQL数据库中选择存储引擎  (2007-09-30 11:34:30)
 ·MySQL数据库中的 ALTER TABLE  (2007-09-30 11:26:19)
 ·MySQL数据库中“与不匹配行有关的问题”  (2007-09-28 12:34:56)
 ·MySQL数据库中与 NULL值有关的几个问题  (2007-09-28 12:33:19)
 ·Linux操作系统上安装MYSQL数据库的方法  (2007-09-27 10:54:34)