我是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