【发布时间】:2015-01-01 22:15:24
【问题描述】:
这是我的查询:
try {
$this->_db->beginTransaction();
$this->_db->update($this->_name, $data, $where);
$this->_db->commit();
} catch (Exception $e) {
$this->_db->rollback();
throw $e;
}
如果某些用户使用此查询,我想锁定表中的这一行,并在查询完成时解锁。但是,现在如果两个用户同时使用这个查询,他们可以更新这一行。我的表是 InnoDB。
经验。 如果某些用户使用此查询更新 id=10 的新闻,而此时其他用户使用此查询更新相同的新闻(id=10)。下次更新其中一个用户将无法看到新的新闻信息。
【问题讨论】:
-
如果你的事务中只有一个更新命令,你不需要使用事务,因为它已经是原子的了
标签: php mysql zend-framework innodb