2

我想使用 Propel ORM 在 symfony 中执行这样的查询:

UPDATE ADS SET HITS=HITS+1 WHERE ID=10;    

我知道 Propel API 可以让我为给定记录的列设置先前固定的值,但我绝对不想在发出更新查询之前先检索列值,因为存在并发访问。

请问,我怎么能做到这一点?

谢谢。

4

2 回答 2

1

这适用于 Symfony 1.3/1.4:

在 AdsPeer 中:

public static function incrementHits($id)
{
  $con = Propel::getConnection(AdsPeer::DATABASE_NAME);
  $query = 'UPDATE hits SET hits + 1 WHERE id = '.$id;
  sfContext::getInstance()->getLogger()->crit($query);
  $stmt = $con->prepare($query);
  $rs = $stmt->execute();
}

要使用:

AdsPeer::incrementHits($id);

高温高压

麦克风

于 2010-03-28T21:35:40.703 回答
0
于 2009-12-05T09:07:47.313 回答