Perl MySQL更新数据

时间:2019-11-20 08:52:39  来源:igfitidea点击:

简介:在本教程中,我们将逐步向您展示如何使用Perl DBI更新MySQL表中的数据。

Perl MySQL更新数据步骤

要更新表中的数据,请使用UPDATE语句。
您使用以下步骤通过使用DBI更新MySQL表中的数据:

首先,使用connect()方法连接到MySQL数据库。

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

接下来,构造一个UPDATE语句并将其传递给数据库句柄对象的prepare()方法以准备要执行的语句。

my $sql = "UPDATE table_name SET col_name = ? WHERE id=?";
my $sth = $dbh->prepare($sql);

然后,如果要将值从Perl程序传递到UPDATE语句,则将占位符(?)放在语句中,并使用语句句柄对象的bind_param()方法绑定相应的参数。

$sth->bind_param(1,$value);
$sth->bind_param(2,$id);

之后,调用语句句柄对象的execute()方法执行查询。

$sth->execute();

最后,使用connector()方法从MySQL数据库断开连接。

$dbh->disconnect();

Perl MySQL更新数据示例

下面的示例使用链接ID 2更新链接表中的数据。
在更新数据之前,让我们首先检查链接表:

SELECT * FROM links;

请参阅以下程序:

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

use DBI;

# MySQL database configurations
my $dsn = "DBI:mysql:perlmysqldb";
my $username = "root";
my $password = '';

say "Perl MySQL Update Data Demo";

# connect to MySQL database
my %attr = ( PrintError=>0, RaiseError=>1);

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

# update statement
my $sql = "UPDATE links
           SET title = ?,
               url = ?, 
               target = ?
	   WHERE id = ?";

my $sth = $dbh->prepare($sql);

my $id = 2;
my $title = "Perl MySQL Update Data Tutorial";
my $url = "https://www.theitroad.local/perl-mysql/perl-mysql-update/";
my $target = "_self";

# bind the corresponding parameter
$sth->bind_param(1,$title);
$sth->bind_param(2,$url);
$sth->bind_param(3,$target);
$sth->bind_param(4,$id);

# execute the query
$sth->execute();

say "The record has been updated successfully!";

$sth->finish();

# disconnect from the MySQL database
$dbh->disconnect();

该程序的输出是:

Perl MySQL Update Data Demo
The record has been updated successfully!

让我们再次查询链接表以验证更新。

SELECT * FROM links;

ID为2的链接记录已成功更改。

在本教程中,您学习了如何通过使用Perl DBI中准备好的语句来更新MySQL表中的数据。