php - INNODB和mysql PDO驱动程序以共享模式锁定

标签 php mysql pdo innodb

使用 INNODB,您可以在查询中添加LOCK IN SHARE MODE;,以便其他用户仍然可以读取但不能更新,直到正在编辑的用户完成为止。

我当前在 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

只需将 LOCK IN SHARE MODE 附加到查询字符串即可。

关于php - INNODB和mysql PDO驱动程序以共享模式锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14726281/

相关文章:

php - 大数据集的流程优化

PHP PDO 产生 "Array"值而不是实际值

php - 在查询中使用 "WHERE"时 PDO 失败

php - 在 codeigniter 中的 foreach 循环中形成中断

以负数作为输入的 PHP 的 pow() 不起作用

php - 使用 MAMP 在本地设置远程 PHP 网站的类错误

mysql - PDO MySQL 查询在 LIKE 子句中使用撇号

php - 谷歌云 SQL : Error while reading greeting packet

php - 数据库更新 - 找不到列 laravel

mysql - 如何找到 mysqld.service 文件?