Zend中有一种将MySQL列中的整数加1的方法吗?在MySQL中增加一列
感谢
编辑:
我当前的代码是这样的:
$row = $this->find($imageId)->current();
$row->votes = // THIS IS WHERE I WANT TO SAY INCREMENT
$row->save();
Zend中有一种将MySQL列中的整数加1的方法吗?在MySQL中增加一列
感谢
编辑:
我当前的代码是这样的:
$row = $this->find($imageId)->current();
$row->votes = // THIS IS WHERE I WANT TO SAY INCREMENT
$row->save();
我可能提供以下建议
$row->votes++;
一个非常简单的解决方案。 谢谢。 – edwinNosh 2011-03-23 05:10:55
这遭受连接之间的竞争条件,并且是一个不好的解决方案。 – 2012-08-03 23:01:15
是的,有。下面是使用的产品和递增数量字段的例子:
$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);
票++不保护免受其他请求的竞争条件,这就是为什么它是需要有一个数据库方案。
例如:假设有两个请求都在几乎同一时间
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)
是 - 你提供更多细节 – bensiu 2011-03-23 04:16:37
你的意思是Zend框架后?如果是这样,哪个组件? Zend_Db,Zend_Db_Table,别的吗? – Phil 2011-03-23 04:32:02