`
qzriso
  • 浏览: 242477 次
  • 性别: Icon_minigender_1
  • 来自: ph
社区版块
存档分类
最新评论

Perl DBI连接MySQL数据库

    博客分类:
  • perl
阅读更多

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) 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() 方法结束会话。
分享到:
评论

相关推荐

    通过dbi使用perl连接mysql数据库的方法

    本文将详细讲解如何通过Perl的DBI模块连接到MySQL数据库,并进行基本的数据操作。 Perl的DBI(Database Interface)模块提供了一个标准的接口,允许Perl程序与各种数据库系统交互,包括MySQL。以下是一个简单的示例...

    Perl DBI 参考(强烈推荐)

    在处理完数据后,记得关闭数据库连接,通常使用`$dbh->disconnect()`。整个过程中,错误处理也是非常关键的部分,可以使用`eval {}`来捕获和处理可能的异常。 Perl DBI的强大在于它的灵活性和广泛支持,无论你是...

    perl的DBI安装包以及安装步骤

    1. `DBI.pm`:这是核心DBI模块,包含了所有与数据库连接、查询和结果处理相关的函数和方法。 2. `DBD::Driver.pm`:这些是特定于数据库驱动的模块,例如`DBD::mysql`对应MySQL,`DBD::Pg`对应PostgreSQL。每个驱动...

    perl 连接数据库所需包

    DBI是Perl数据库编程的标准,它提供了一组统一的函数和方法,用于执行SQL查询、处理结果集和管理数据库连接。通过DBI,程序员可以编写与数据库无关的代码,只需更换不同的DBD驱动,就能适应不同类型的数据库系统,如...

    Programming Perl DBI 8

    2. **连接数据库**:讲解如何使用DBI建立数据库连接,包括设置DSN(数据源名称)、数据库用户名和密码,以及处理连接错误。 3. **执行SQL语句**:详细阐述如何通过DBI执行SELECT、INSERT、UPDATE、DELETE等SQL语句...

    linux下perl操作mysql数据库(需要安装DBI)

    当需要与MySQL数据库交互时,Perl可以通过DBI(Database Interface)模块来实现。DBI是Perl的一个标准数据库接口,它提供了一个统一的方式来连接不同的数据库系统,包括MySQL。在本教程中,我们将详细介绍如何在...

    Perl DBI中文手册 pdf.rar

    "DBI类"和"处理器通用方法"章节会涵盖DBI的主要类和方法,比如`connect()`用于建立数据库连接,`prepare()`用于准备SQL语句,`execute()`用于执行SQL,`fetchrow_array()`或`fetchall_arrayref()`用于获取查询结果。...

    单兴华CTO-学习Mysql经典教程-附录G Perl DBI API 参考.pdf

    本章节着重讲解了如何使用Perl DBI与MySQL进行交互,并特别提到了由DBD::mysql提供的MySQL数据库驱动程序。 #### 二、Perl DBI API简介 Perl DBI API是一组用于与数据库服务器通信以及从Perl脚本访问数据库的方法...

    perl-DBI-1.40-5.i386.rar

    2. **灵活性**:DBI允许用户通过连接字符串来指定数据库连接参数,支持动态SQL语句的构建,以及通过预编译的SQL语句提高性能。 3. **错误处理**:DBI提供了一套完整的错误处理机制,包括返回错误码、错误消息,以及...

    关于perl DBI的方法使用

    `disconnect()`方法用于关闭数据库连接。 4. 数据库句柄方法: - `do()`:执行非SELECT类型的SQL语句,如INSERT、UPDATE或DELETE,返回受影响的行数或错误信息。 - `prepare()`:预编译SQL语句,返回语句句柄,...

    Perl实现文件及数据库访问

    在这个主题中,我们将深入探讨Perl在文件操作和数据库连接方面的应用。 在文件操作方面,Perl提供了丰富的内置函数来读取、写入、追加和操作文件。例如,`open()` 函数用于打开一个文件,`<FILEHANDLE>` 用于读取...

    单兴华CTO-学习Mysql经典教程-第07章Perl DBI API.pdf

    ### 单兴华CTO-学习Mysql经典教程-第07章Perl DBI API #### 7.1 Perl脚本的特点 Perl脚本是一种基于文本格式的脚本语言,通常使用任何文本编辑器就可以创建。为了确保脚本能被正确执行,通常在脚本的第一行会指定...

    MySQL 事务预编译查询和Perl DBI简化

    Perl DBI(Database Independent Interface)模块是Perl连接数据库的标准接口,它提供了一种统一的方式来与各种数据库系统交互,包括MySQL。DBI允许我们创建数据库句柄,执行SQL查询,处理结果集等。使用DBI,我们...

    DBD-mysql:Perl5数据库接口(DBI)MySQL驱动程序

    DBD-mysql是Perl5语言的一个数据库接口模块,它是针对MySQL数据库系统设计的DBI(Database Interface)驱动程序。DBI是Perl社区广泛使用的数据库抽象层,它提供了一个统一的接口来访问各种不同的数据库系统,使得...

    Linux下的MySQL依赖包(所有perl).rar

    DBI为MySQL提供了与数据库连接、查询执行、结果处理等功能。 2. DBD::MySQL:这是DBI的一个驱动,专门用于连接和操作MySQL数据库。它实现了DBI接口,使得Perl脚本可以直接与MySQL进行通信,执行SQL查询,处理结果集...

    PERL_DBI手册.pdf

    DBI(Database Interface)是Perl编程语言的一个数据库抽象层模块,它为不同的数据库系统提供了一致的编程接口。DBI使用DBD(Database Driver)模块与特定数据库进行通信。DBI手册详细介绍了如何使用DBI模块进行...

    如何Perl使用Access数据库

    DBD::ODBC是DBI的一个驱动,用于通过ODBC(开放数据库连接)接口与各种数据库进行通信,包括Access。安装这两个模块,如果你使用的是ActivePerl,可以通过PPM(Perl Package Manager)来完成。下载DBI.zip和DBD-ODBC...

Global site tag (gtag.js) - Google Analytics