Perl MySQL Connect

摘要:在本教程中,您将逐步学习如何使用 Perl DBI API 连接到 MySQL 数据库。

让我们开始在 MySQL 中创建一个名为perlmysqldb简单数据库来进行演示。

以下CREATE DATABASE语句在 MySQL 服务器中创建一个新数据库:

CREATE DATABASE perlmysqldb;Code language: SQL (Structured Query Language) (sql)

连接到 MySQL 数据库

Perl MySQL Connect

当您连接MySQL数据库时,您需要以下信息:

  • 首先,您需要告诉 DBI 在哪里可以找到 MySQL 数据库服务器。这称为数据源名称或 DSN。数据源名称指定要使用的驱动程序和要连接的数据库。 Perl 要求数据源名称以dbi:开头,并且需要驱动程序的名称。对于 MySQL,驱动程序名称是mysql后跟冒号:例如dbi:mysql: ,然后是数据库名称,例如dbi:mysql:perlmysqldb
  • 其次,您需要提供连接到数据库的MySQL 用户帐户的用户名和密码。
  • 第三,可选的连接属性指定DBI处理连接MySQL数据库时可能发生的异常的方式。

创建 MySQL 数据库连接的语法如下:

$dbh = DBI->connect($dsn,$username,$password,\%attr);Code language: Perl (perl)

如果成功建立数据库连接, connect()方法将返回数据库句柄

例如,要连接到perlmysqldb数据库,请使用以下脚本:

#!/usr/bin/perl
use strict;
use warnings;
use v5.10; # for say() function

use DBI;
say "Perl MySQL Connect Demo";
# MySQL database configuration
my $dsn = "DBI:mysql:perlmysqldb";
my $username = "root";
my $password = '';

# connect to MySQL database
my %attr = ( PrintError=>0,  # turn off error reporting via warn()
             RaiseError=>1);   # turn on error reporting via die()           

my $dbh  = DBI->connect($dsn,$username,$password, \%attr);

say "Connected to the MySQL database.";Code language: Perl (perl)

怎么运行的。

  • 一、使用use DBI;脚本顶部的声明。
  • 接下来,定义一些保存数据源名称、用户名和密码的变量。
  • 然后,定义一个包含连接属性的哈希变量
  • 之后,将相应的参数传递给connect()方法以创建与perlmysqdb数据库的连接。
  • 最后显示一条消息,表明程序已成功连接MySQL数据库。

以下是脚本的输出:

Perl MySQL Connect Demo
Connected to the MySQL database.Code language: Shell Session (shell)

处理错误

Perl DBI 允许您手动和/或自动处理错误。 Perl DBI 在错误发生时检测错误,并使用适当的错误消息调用warn()die()函数。

PrintError属性指示 DBI 调用warn()函数,该函数将错误显示到输出中。 RaiseError属性告诉 DBI 在出错时调用die()函数并立即中止脚本。

Perl DBI 默认启用PrintError 。但是,我们强烈建议您关闭PrintError属性并打开RaiseError属性,以指示 DBI 自动处理错误。

如果没有打开RaiseError ,则必须手动处理错误,如下所示:

# withou RasieError off:
 my $dbh  = DBI->connect($dsn,$username,$password) or 
            die("Error connecting to the database: $DBI::errstr\n");Code language: Perl (perl)

当发生错误时,DBI 将错误消息存储在$DBI::errstr变量中。基本上,上面的语句意味着如果与数据库的连接失败,它会显示错误消息并立即中止脚本。

打开RaiseError属性的另一个好处是代码看起来更具可读性,因为您不必在调用 DBI 方法的任何地方都包含or die()语句。

断开与 MySQL 数据库的连接

如果您不再与 MySQL 数据库交互,则应显式断开连接。这是一个很好的做法。

要关闭数据库连接,请使用数据库句柄对象的disconect()方法,如下所示:

# disconnect from the MySQL database
$dbh->disconnect();Code language: Perl (perl)

在本教程中,您学习了如何使用 Perl DBI API 连接到 MySQL 数据库和断开连接。

本教程有帮助吗?