perl如何联接mysQL_Perl 连接到 MySQL 数据库

使用 Perl 连接到 MySQL 数据库,本章将展示如何创建与数据库的连接。

第一步是连接到数据库。 我们使用connect() DBI 方法建立连接。 disconnect()方法用于关闭数据库连接。

connect()方法建立与请求的数据源的数据库连接。 如果连接成功,它将返回数据库句柄对象。 我们使用disconnect()方法终止连接。

$dsn是数据源名称。 它是一个字符串,告诉 Perl DBI 模块,应加载哪种驱动程序以及将要建立连接的数据库的位置。

上面的字符串是 Perl DBI 中数据源名称的示例。

我们将使用此数据源名称。 dsn始终以dbi:子字符串开头。 然后我们有驱动程序名称。 在我们的情况下,驱动程序名称为mysql。 第三部分是数据库名称。 在本教程中,我们将使用mydb。

$username和$password是身份验证所需的用户名和密码。 最后一个参数是对哈希的引用,在哈希中,我们可以设置属性以更改连接的默认设置。 例如,RaiseError 属性可用于强制错误引发异常,而不是返回错误代码。 HandleError属性可用于提供子程序,以防发生错误。 AutoCommit 属性设置或取消设置自动提交模式。

$DBI::errstr是一个 DBI 动态属性,它返回本地数据库引擎错误消息。 如果连接失败,则会显示此消息,并且脚本将中止。

版本

在第一个代码示例中,我们将获取 MySQL 数据库的版本。

在上面的 Perl 脚本中,我们连接到先前创建的mydb数据库。 我们执行一条 SQL 语句,该语句返回 MySQL 数据库的版本。

我们使用 Perl DBI 模块连接到 MySQL 数据库。

在这里,我们连接到mydb数据库。 第一个参数是数据源名称。 在字符串中,我们指定数据库驱动程序和数据库名称。 第二个参数是用户名。 第三个参数是用户密码。 最后一个参数是数据库选项。 我们将RaiseError选项设置为 1。这将导致引发异常,而不是返回错误代码。

prepare()方法准备一条 SQL 语句供以后执行。 execute()方法执行 SQL 语句。

我们获取数据。

我们将检索到的数据打印到控制台。

在这里,我们指示将不再从此语句句柄中获取任何数据。

我们关闭与数据库的连接。

执行 verion.pl 脚本,我们得到 MySQL 数据库的版本。

插入数据

我们将创建一个Cars表并在其中插入几行。

上面的脚本创建一个Cars表,并将 8 行插入到该表中。

do()方法执行 SQL 语句。 它将两个方法调用prepare()和execute()组合为一个调用。 do()方法用于非选择语句。

这两行将两辆车插入桌子。 请注意,默认情况下,我们处于 自动提交模式,其中对表的所有更改均立即生效。

这是我们已写入Cars表的数据。

最后插入的行 ID

有时,我们需要确定最后插入的行的 ID。 在 Perl DBI 中,我们使用last_insert_id()方法进行查找。

我们创建一个新的Friends表。 Id自动递增。

这是创建 Friends 表的 SQL 语句。 AUTO_INCREMENT属性用于为新行生成唯一的 ID。

这五个 SQL 语句将五行插入到Friends表中。

使用last_insert_id()方法,我们获得最后插入的行 ID。

我们看到了脚本的输出。

取得数据

在本章的最后一个示例中,我们获取一些数据。 有关数据获取的更多信息将在“查询”一章中进行讨论。

在示例中,我们从Cars表中获取一行。 我们还将找出我们选择了多少字段&行。

我们使用prepare()方法准备一条 SQL 语句。 SQL 字符串被发送到 MySQL 数据库引擎进行处理。 检查其语法和有效性。 该方法返回一个语句句柄。 然后执行 SQL 语句。 准备将数据发送到客户端程序。

使用fetchrow()方法从数据库中检索数据。 该方法以 Perl 列表的形式从表中返回一行。

NUM_OF_FIELDS是一个语句句柄属性,它为我们提供了返回字段的数量。 在我们的情况下,我们返回了三个字段:Id,Name和Price。

我们得到选定的行数。 我们仅从表中检索到一行。 rows()方法返回受影响的行数。 它可以用于SELECT,UPDATE和DELETE SQL 语句。

fetchrow.pl 脚本的输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值