Zend中有没有办法将MySQL列中保存的整数递增1?
由于
编辑:
我目前的代码如下:
$row = $this->find($imageId)->current();
$row->votes = // THIS IS WHERE I WANT TO SAY INCREMENT
$row->save();
答案 0 :(得分:17)
是的。以下是使用产品和递增数量字段的示例:
$table = 'products';
$data = array('prd_qnty' => new Zend_Db_Expr('prd_qnty + 1'));
$where[] = $db->quoteInto('pr_id = ?', $this->pr_id);
$db->update($table, $data, $where);
答案 1 :(得分:5)
投票++不能防止其他请求中的竞争条件,这就是为什么需要拥有数据库解决方案。
例如:想象两个请求几乎同时进入
1st request loads object - votes is 500
2nd request loads object - votes is 500
1st increments value in memory - votes is 501
2nd increments value in memory - votes is 501
1st saves to db - votes is 501
2nd saves to db - votes is 501 (should be 502)
答案 2 :(得分:0)
我可以提供以下建议
$row->votes++;