PDO Add One to Value


PDO Add One to Value

我是PDO的新手,我正在尝试制作一个按钮,当用户按下它时,相应数字的值会增加一。

$statement = "UPDATE table SET counter=? WHERE id=?";
$z = $db->prepare($statement);
$z->execute(array($counter+1,$id));

$id发送正确,但我不知道如何在计数器中添加一个。

您可以让MySQL为您执行更新,而无需获取计数器并在MySQL中更新。。

UPDATE table SET counter = counter + 1 WHERE id = ?

这也是原子性的,所以同时多个命中不会导致计数丢失。如果您需要先插入不存在的记录,您可以将此查询更改为以下内容,前提是您在"id"列上有一个唯一/主键:

INSERT INTO table (id, counter) VALUES (?, 1) ON DUPLICATE KEY UPDATE counter = counter + 1

如果记录还不存在,这将处理插入记录的问题,如果存在,则更新记录。这比执行多个查询来检查记录是否首先存在并在丢失时插入更有效。

有关详细信息,请参阅此处:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html