Perl数据库UPDATE操作


Perl 对任何数据库的 UPDATE 操作意味着更新数据库表中已存在的⼀条或多条记录。以下是更新所有 SEX 为 'M' 的记录的过程。我们将把所有男性的 AGE 增加⼀岁。这将分三个步骤完成:

  • 根据所需的条件准备 SQL 查询。这将使用 **prepare()** API 完成。
  • 执行 SQL 查询以从数据库中选择所有结果。这将使用 **execute()** API 完成。
  • 释放语句句柄。这将使用 **finish()** API 完成。
  • 如果一切顺利,则提交此操作;否则,您可以 **回滚**整个事务。有关提交和回滚 API,请参见下一节。
my $sth = $dbh->prepare("UPDATE TEST_TABLE SET AGE = AGE + 1 WHERE SEX = 'M'");
$sth->execute() or die $DBI::errstr;
print "Number of rows updated :" + $sth->rows;
$sth->finish();
$dbh->commit or die $DBI::errstr;

使用绑定值

可能存在事先未给出条件的情况。因此,您可以使用绑定变量,这些变量将在运行时获取所需的值。Perl DBI 模块使用问号代替实际值,然后实际值在运行时通过 execute() API 传递。以下是一个示例:

$sex = 'M';
my $sth = $dbh->prepare("UPDATE TEST_TABLE SET AGE = AGE + 1 WHERE SEX = ?");
$sth->execute('$sex') or die $DBI::errstr;
print "Number of rows updated :" + $sth->rows;
$sth->finish();
$dbh->commit or die $DBI::errstr;

在某些情况下,您可能希望设置一个事先未给出的值,因此您可以按如下所示使用绑定值。在此示例中,所有男性的收入将设置为 10000。

$sex = 'M';
$income = 10000;
my $sth = $dbh->prepare("UPDATE TEST_TABLE SET INCOME = ? WHERE SEX = ?");
$sth->execute( $income, '$sex') or die $DBI::errstr;
print "Number of rows updated :" + $sth->rows;
$sth->finish();

更新于:2019年12月2日

972 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告