Perl DBI连接MySQL数据库

转载 2007年09月20日 00:46:00

转自: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"

注意:你可以手动下载和安装DBIMySQL 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) 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 查询时,请遵循四个简单的步骤:

  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数据库连接代码时,这一脚本模块将可为你节省时间。编程快乐! 

写的一个perl脚本,用于发送远程MySQL命令

此脚本用于发送远程MySQL命令。功能简单,后续将慢慢完善。
  • renfengjun
  • renfengjun
  • 2014年12月02日 21:53
  • 2089

Perl DBI 数据库操作

本次会议将教你如何使用PERL访问Oracle数据库和其他数据库。 Oraperl模块以访问Oracle,请查看Oraperl手册。 DBI模块使用通用的方式来访问数据库。在本章中,我...
  • yuan13091324
  • yuan13091324
  • 2014年09月26日 11:11
  • 2188

perl--DBI使用详解(二)

perl--DBI使用详解
  • herokoking
  • herokoking
  • 2017年03月03日 09:31
  • 1390

安装perl和DBI-mysql出现的一些问题

安装perl后, 因为想要运行innotop,mytop之类的perl文件。 所以出现了一系列问题: 1. Can't locate Time/HiRes.pm in 原因:perl包没有安装完全...
  • nemo2011
  • nemo2011
  • 2013年05月30日 20:48
  • 3371

linux下安装配置DBI,perl连接mysql

参考http://blog.csdn.net/stevenyanzhi/article/details/5997556 http://wenku.baidu.com/link?url=wmrhRy2...
  • Touatou
  • Touatou
  • 2016年12月19日 19:56
  • 201

用perl程序导入文本文件到mysql数据库中的方法

  • 2009年03月18日 09:58
  • 10KB
  • 下载

perl DBI模块和DBD-mysql模块安装

首先,来一段代码来自NinGoo的检测系统中已经安装的Perl模块: [root@rh65sql1 tmp]# cat check_module.pl #!/usr/bin/perl use Ex...
  • u010587433
  • u010587433
  • 2015年07月01日 11:47
  • 1020

perl 卸载mysql数据库

#!/usr/bin/perl use DBI; $dbUser='test'; $user="test"; $passwd="123456"; $dbh=""; $dbh = DBI->conne...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2015年09月10日 14:45
  • 222

Perl安装DBDmysql操作mysql数据库

本文讲述两个内容: 一:环境包安装 二:操作脚本 一:环境包安装 假定 以安装好perl语言和mysql数据库 DBI安装:DBI详细信息参考:http://dbi.perl.org/ 1.下...
  • q383965374
  • q383965374
  • 2013年10月21日 16:49
  • 4336

perl多进程抽取mysql数据库

#!/usr/bin/perl use DBI; use Parallel::ForkManager; use Encode; use HTTP::Date qw(time2iso str2time...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2017年10月24日 15:33
  • 75
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Perl DBI连接MySQL数据库
举报原因:
原因补充:

(最多只允许输入30个字)