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 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.