【发布时间】:2012-03-08 02:24:54
【问题描述】:
我想为数据库中已经存在的 mysql 值添加一个值。我知道你可以这样做:
my $sql1 =qq(UPDATE genotype SET Tally=Tally+10);
但是,我希望“+10”作为占位符,因为该值会根据程序所在的 for 循环迭代而有所不同。我编写了以下内容,但是它不起作用:
my $sql1 =qq(UPDATE genotype SET Tally=Tally + ?);
my $sth1 = $dbh_m-> prepare($sql1);
$sth1->execute($ParentTally);
这里可以使用占位符吗?我也写过:
my $sql5 =qq(SELECT Tally FROM genotype);
my $sth5 = $dbh_m-> prepare($sql5);
$sth5->execute();
my $newTally;
while (my $ChosenTally = $sth5 ->fetch){
for my $field (@$ChosenTally){
$newTally=$field;
}
}
$newTally+=$ParentTally;
my $sql6 =qq(UPDATE genotype SET Tally= ?);
my $sth6 = $dbh_m-> prepare($sql6);
$sth6->execute($newTally);
上面的代码确实有效,但是如果可能的话,我想减少我的程序与数据库的连接数。
谢谢
【问题讨论】:
标签: mysql perl placeholder