我在 Symfony 1.4 和 Propel 1.4 中有一个现有项目
对于新要求,我尝试了以下代码:
static public function extendMomentoLock($momentoId,$memberId)
{
$wherec = new Criteria();
$updatec = new Criteria();
$updatec->add(MomentoPeer::LOCKED, 1);
$updatec->addAnd(MomentoPeer::LOCKEDBY, $memberId);
$wherec->add(MomentoPeer::ID, $momentoId, Criteria::EQUAL);
$con = Propel::getConnection(MemberPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
BasePeer::doUpdate($wherec, $updatec, $con);
return "extended";
}
正如预期的那样,它生成了正确的查询,取自日志
UPDATE momento SET `LOCKED`=1, `LOCKEDBY`=6 WHERE momento.ID='198'
到这里为止没有问题。
问题开始了,因为我需要每 3 分钟运行一次此查询。规则是,如果记录提前 5 分钟更新,则每 5 分钟自动解锁一次。要保持锁定状态,updated_at
列必须少于 5 分钟,以便浏览器发送请求以保持记录锁定。
我期待查询更新updated_at
列。但是,由于查询中没有任何更新,updated_at
因此列没有更新。
有没有办法强制执行查询,即使没有更新记录。