使用Perl连接 MySQL
简介:在本教程中,您将逐步学习如何使用Perl DBI API连接到MySQL数据库。
首先,通过在MySQL中创建一个简单的数据库perlmysqldb进行演示。
CREATE DATABASE perlmysqldb;
连接到MySQL数据库
连接到MySQL数据库时,需要指定以下信息:
首先,您需要告诉DBI在哪里可以找到MySQL数据库服务器。
此信息称为数据源名称或DSN。
数据源名称指定要使用的驱动程序,要连接的数据库。
Perl要求数据源名称以dbi:开头,并且驱动程序的名称为mysql,后跟另一个冒号:例如dbi:mysql:,然后是数据库名称dbi:mysql:perlmysqldb 。其次,您需要提供连接到数据库的MySQL用户帐户的用户名和密码。
第三,可选的连接属性指定DBI处理连接到MySQL数据库时可能发生的异常的方式。
创建与MySQL数据库的连接的语法如下:
$dbh = DBI->connect($dsn,$username,$password,\%attr);
如果与数据库的连接成功建立,则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.";
这个怎么运作。
首先,使用use DBI;脚本顶部的语句。
接下来,定义一些变量以保存数据源名称,用户名和密码。
然后,定义一个包含连接属性的哈希。
之后,将相应的参数传递给connect()方法以创建与perlmysqdb数据库的连接。
最后,显示一条消息,指示该程序已成功连接到MySQL数据库。
以下是脚本的输出:
Perl MySQL Connect Demo Connected to the MySQL database.
处理错误
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");
发生错误时,DBI将错误消息存储在$ DBI :: errstr变量中。
基本上,以上语句表示如果与数据库的连接失败,它将显示错误消息并立即中止脚本。
启用RaiseError属性的另一个好处是代码看起来更具可读性,因为您不必在调用DBI方法的任何地方都包含或die()语句。
与MySQL数据库断开连接
如果不再与MySQL数据库进行交互,则应显式断开与它的连接。
这是一个好的编程习惯。
要与数据库断开连接,请使用数据库句柄对象的disconect()方法,如下所示:
# disconnect from the MySQL database $dbh->disconnect();
在本教程中,您学习了如何使用Perl DBI API与MySQL数据库连接和断开连接。