Php INNODB和mysql PDO驱动程序在共享模式下锁定

Php INNODB和mysql PDO驱动程序在共享模式下锁定,php,mysql,pdo,innodb,Php,Mysql,Pdo,Innodb,使用INNODB,您可以在共享模式下添加查询锁;这样其他用户仍可以读取,但在编辑的用户完成之前不能更新 我当前在PHP中使用的PDO函数如下所示: //$this->db is a PDO connection to the MYSQL innodb database. try { $this->db->beginTransaction(); $tmp = $this->db->prepare($query); $tmp-&g

使用INNODB,您可以在共享模式下添加查询锁;这样其他用户仍可以读取,但在编辑的用户完成之前不能更新

我当前在PHP中使用的PDO函数如下所示:

//$this->db is a PDO connection to the MYSQL innodb database.
try 
    {
    $this->db->beginTransaction();
    $tmp = $this->db->prepare($query);  

    $tmp->execute($arr);
    $this->last_id = $this->db->lastInsertId();
    $this->db->commit();
    return $this->last_id;
    }
catch(PDOException $ex)
    {
    $this->db->rollBack();
    return $ex->getMessage();
    }
是否有PDO驱动程序功能设置可将其设置为共享模式?如果是,怎么做?我发现的唯一的问题没有答案,文档也不是很清楚。
或者我应该简单地将其添加到查询字符串中吗?

您必须创建查询来处理MySQL语法,仅此而已,例如:

SELECT * FROM parent WHERE NAME = 'Jones' LOCK IN SHARE MODE

只需在共享模式下将锁附加到查询字符串。

您必须创建查询以使用MySQL语法,仅此而已,例如:

SELECT * FROM parent WHERE NAME = 'Jones' LOCK IN SHARE MODE

只需将共享模式下的锁附加到查询字符串。

这样,这不会妨碍PDO连接的事务功能吗?提交后会释放锁吗?或者我需要通过查询释放它吗?是的,交易功能将工作,并且在交易结束后将释放锁。谢谢!你帮了大忙!那么,这不会妨碍PDO连接的事务功能吗?提交后会释放锁吗?或者我需要通过查询释放它吗?是的,交易功能将工作,并且在交易结束后将释放锁。谢谢!你帮了大忙!