2012-08-10 35 views
0

以下是這種情況:我需要一種機制來更新存儲在數據庫中用於登錄網站的某個用戶的值(將當前值加1) 。這是當前的代碼:將常量添加到數據庫中的值並使用PDO進行更新

$value = $row["value"]; 
$add_value = $db->prepare('UPDATE table SET value = $value + 1 WHERE email = :email'); 
$add_value->execute(array(':email' => $email)); 

但我收到的是以下錯誤消息: 解析錯誤:語法錯誤,在...

意外T_LNUMBER我在做什麼錯?

回答

1

首先,您使用的是單引號,這意味着變量不會被解析。 (查詢字面上看到$value而不是實際值)。

其次,你不需要預先知道的值,以下工作正常:

$add_value = $db->prepare('UPDATE `table` SET `value` = `value` + 1 WHERE `email` = :email'); 
$add_value->execute(array(':email' => $email)); 

數據庫引擎知道適當地更新該字段。

+0

謝謝,完美的作品! – DannyCruzeira 2012-08-11 10:14:30

相關問題