li
  当前位置:主页 > 基础知识 > 文章内容
li
用Perl DBI连接MySQL数据库
来源: www.ixdba.net  作者: ixdba.net技术社区    时间:2008-03-23   阅读:1  
ixdba.net技术社区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数据库连接代码时,这一脚本模块将可为你节省时间。编程快乐!




  上一篇: 优化MySQL数据库查询的三种方法简...   下一篇: MySQL 4.1数据库中数据转换注意事...
li
 §相关评论  
 热点文章

·RewriteRule重写规则的语法:A
·apache配置文件httpd.conf参数
·Apache的配置文件http.conf参数
·HTTP协议中POST、GET、HEAD等参
·XAMPP命令之LAMPP
·Linux中安装XAMPP(LAMPP)服务器
·网页禁止右键、禁止复制等代码
·java.lang.OutOfMemoryError:
·Mysql数据库在Linux系统常用命
·mysql问答:MySQL数据库连接过多
·MySQL数据库中Show命令的用法
li
 编辑推荐
·RewriteRule重写规则的语法:A
·apache配置文件httpd.conf参数
·Apache的配置文件http.conf参数
·HTTP协议中POST、GET、HEAD等参
·XAMPP命令之LAMPP
·Linux中安装XAMPP(LAMPP)服务器
·网页禁止右键、禁止复制等代码
·java.lang.OutOfMemoryError:
·Mysql数据库在Linux系统常用命
·mysql问答:MySQL数据库连接过多
·MySQL数据库中Show命令的用法
li
 相关篇章
·优化MySQL数据库查询的三种方法简...
·六大步保护MySQL数据库中重要数据
·如何修改遗失的MySQL的ROOT用户密...
·通过PHP连接My SQL的两种方法简介
·MySQL数据库账户授权的相关管理解...
·从MySQL到ORACLE程序迁移的注意事...
·向你介绍MySQL数据库备份的简单知...
·MySQL使用tips
·MySQL数据库批量导入脚本
·让MySQL与OpenOffice共舞
·MySQL 4.1数据库中数据转换注意事...
·用Apache与MySQL整合实现基本身份...
·教你编写高质量、高性能的MySQL语...
·保护MySQL数据库中重要的数据注意...
·用新的PHP插件实现MySQL为基础的...
·教你如何使用触发器管理MySQL数据...
·在MySQL中获得更好的全文搜索结果
·关于MySQL数据库的用户认证系统分...
·通过数据库引擎来加速MySQL数据库
·针对于MySQL新增的复制特性的测试
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接