尝试获取代码以将数据库列总数更新为3

时间:2015-01-27 22:57:33

标签: php mysql

我正致力于为某人提供内容时更新积分的代码。我有一个表“点”和一列“贡献”。当我创建一个名为contrib的变量并为其赋值3然后执行SET contributions = $contributions时,如下所示代码就可以了:

$contributions = 3
$yesupdate = "UPDATE points SET contributions = $contributions WHERE ID =  
$user_ID";
$stmt2 = $dbh->prepare($yesupdate);
$stmt2->bindParam(':WID', $yes_WID, PDO::PARAM_INT);        
$stmt2->bindParam(':approved', $e = Y, PDO::PARAM_STR);   
$stmt2->bindParam(':position', $row2[0]['position'], PDO::PARAM_INT);                                        
$stmt2->execute();

然而,我不希望将点数设置为3.我希望每次添加3。所以我尝试了以下方法,但没有任何反应:

$yesupdate = "UPDATE points SET contributions = $contributions + 3 WHERE ID
= $user_ID";
$stmt2 = $dbh->prepare($yesupdate);
$stmt2->bindParam(':WID', $yes_WID, PDO::PARAM_INT);        
$stmt2->bindParam(':approved', $e = Y, PDO::PARAM_STR);   
$stmt2->bindParam(':position', $row2[0]['position'], PDO::PARAM_INT);                                        
$stmt2->execute();

谁能看到我错过的东西?我是否需要像示例1中那样在示例2中设置$contributions变量?如果是这样,当我只想让代码更新数据库中“贡献”的现有值3时,我会为该变量分配什么?

2 个答案:

答案 0 :(得分:2)

您希望查询引用列中的当前值(而不是变量)并添加三个:

UPDATE points SET contributions = contributions + 3 WHERE ID = $user_ID

您也应该正确使用准备工作,请查看:PHP Manual: PDO::prepare

答案 1 :(得分:0)

$yesupdate = "UPDATE points SET contributions = contributions + 3 WHERE ID = $user_ID";
$stmt2 = $dbh->prepare($yesupdate);
$stmt2->bindParam(':WID', $yes_WID, PDO::PARAM_INT);        
$stmt2->bindParam(':approved', $e = Y, PDO::PARAM_STR);   
$stmt2->bindParam(':position', $row2[0]['position'], PDO::PARAM_INT);                                        
$stmt2->execute();