本章我们将介绍 Perl DBI 模块和 MySQL 数据库。 我们将提供一些定义并显示如何安装必要的相关软件。
先决条件
要使用本教程,我们必须安装 Perl 语言,MySQL 数据库,Perl DBI 和DBD::MySQL
模块。 DBI 是标准的 Perl 数据库接口。 每个数据库都有其驱动程序。 在我们的例子中,DBD::mysql
是 MySQL 数据库的驱动程序。
上面的命令显示了如何安装 Perl DBI 和DBD::mysql
模块。
MySQL 数据库
_MySQL
是领先的开源数据库管理系统。 它是一个多用户,多线程的数据库管理系统。 MySQL 在网络上特别流行。 它是非常流行的LAMP_ 平台的一部分,该平台由 Linux,Apache,MySQL 和 PHP 组成。 目前,MySQL 由 Oracle 拥有。 MySQL 数据库在最重要的 OS 平台上可用。 它运行在 BSD UNIX,LINUX,窗,S 或 Mac OS。 维基百科和 YouTube 使用 MySQL。 这些站点每天管理数百万个查询。 MySQL 有两个版本:MySQL 服务器系统和 MySQL 嵌入式系统。
MySQL 随附mysql
命令行实用程序。 它可用于对数据库发出 SQL 命令。 现在,我们将使用mysql
命令行工具创建一个新数据库。
此命令将安装 MySQL 服务器和其他各种软件包。 在安装软件包时,提示我们输入 MySQL 根帐户的密码。 要从源代码安装 MySQL,请查看 MySQL 安装页面。
我们检查 MySQL 服务器是否正在运行。 如果没有,我们需要启动服务器。
如果我们已经从软件包中安装了 MySQL 数据库,则上述命令是启动 MySQL 的常用方法。
上面的命令使用 MySQL 服务器启动脚本启动 MySQL 服务器。 我们启动 MySQL 服务器的方式可能有所不同。 这取决于我们是否从源代码或软件包安装了 MySQL,也取决于 Linux 发行版。 有关更多信息,请查阅 MySQL 的第一步或您的 Linux 发行版信息。
接下来,我们将创建一个新的数据库用户和一个新的数据库。 我们使用mysql
客户端。
我们使用 _mysql
监视器 _ 客户端应用连接到服务器。 我们使用根帐户连接到数据库。 我们用SHOW DATABASES
语句显示所有可用的数据库。
我们创建一个新的mydb
数据库。 在整个教程中,我们将使用此数据库。
我们创建一个新的数据库用户。 我们授予该用户mydb
数据库所有表的所有特权。
Perl DBI
Perl _DBI
(数据库接口)是用于 Perl 编程语言的数据库访问模块。 它定义了一组提供标准数据库接口的方法,变量和约定。 DBI 还负责驱动程序的动态加载,错误检查和处理,提供方法的默认实现以及许多其他非数据库特定的职责。 DBI 将方法调用分派到适当的数据库驱动程序。DBD_ (数据库驱动程序)是一个 Perl 模块,它转换特定数据库引擎的 DBI 方法。 数据库驱动程序由数据库供应商提供。
该代码示例列出了系统上所有可用的驱动程序。
我们为脚本导入 DBI 模块。
available_drivers()
类方法获取系统上所有当前可用的驱动程序。
此行将驱动程序打印到控制台,每个驱动程序都在单独的行上。
示例输出。
常见的 DBI 方法
下表列出了一些常见的 DBI 方法。
方法名称 | 描述 |
---|---|
available_drivers() |
返回所有可用驱动程序的列表 |
connect() |
建立与请求的数据源的连接 |
disconnect() |
与数据库服务器断开连接 |
prepare() |
准备要执行的 SQL 语句 |
execute() |
执行预备语句 |
do() |
准备并执行一条 SQL 语句 |
bind_param() |
在预备语句中将值与占位符关联 |
bind_col() |
将 Perl 变量绑定到 SELECT 语句的输出字段 |
begin_work() |
开始新事务 |
commit() |
将最新的一系列未提交的数据库更改写入数据库 |
rollback() |
撤消最近一系列未提交的数据库更改 |
quote() |
引用字符串文字,以用作 SQL 语句中的字面值 |
dump_results() |
获取所有行并打印 |
fetchrow_array() |
获取下一行作为字段数组 |
fetchrow_arrayref() |
获取下一行作为字段的参考数组 |
fetchrow_hashref() |
获取下一行作为对哈希表的引用 |
fetchall_arrayref() |
以数组的形式获取所有数据 |
finish() |
完成声明并让系统释放资源 |
rows() |
返回受影响的行数 |
column_info() |
提供有关列的信息 |
table_info() |
提供有关表的信息 |
primary_key_info() |
提供有关表中主键的信息 |
foreign_key_info() |
提供有关表中外键的信息 |
约定
在使用 Perl DBI 时,Perl 程序员通常使用以下变量名。 在本教程中,我们也将遵守这些约定。
变量名 | 描述 |
---|---|
$dbh |
数据库句柄对象 |
$sth |
语句句柄对象 |
$drh |
驱动程序句柄对象(在应用中很少见或使用) |
$h |
上面的任何句柄类型( sth 或$ drh) |
$rc |
通用返回码(布尔值:true = ok,false = error) |
$rv |
一般返回值(通常为整数) |
@ary |
从数据库返回的值列表,通常是一行数据 |
$rows |
处理的行数(如果可用,否则为-1) |
$fh |
文件句柄 |
undef |
NULL 值由 Perl 中的未定义值表示 |
\%attr |
引用传递给方法的属性值的哈希 |