PHP PDO 未锁定 MySQL 表

标签 php mysql pdo

我试图在我的 PHP 脚本中运行这个命令来锁定我的表:

$PDO->exec('LOCK TABLES `tblclients` WRITE');

运行该脚本后,我尝试从 MySQL Workbench 中的该表SELECT 以验证该表是否确实已锁定。 SELECT 运行顺利,这告诉我该表实际上从未被锁定。我说得对吗?

如果我只是从 MySQL Workbench 中运行 LOCK TABLES tblclients WRITE,然后尝试 SELECT 表确实显示为 LOCKED 并阻止 SELECT 从发射开始。

当我从我的 PHP 脚本运行该查询时,它似乎不起作用。

在这两种情况下,我都以 root 用户身份在本地运行,因此我拥有所有权限。

有什么想法吗?

最佳答案

MySQL LOCK TABLES 是每 session 操作。如果你运行类似的东西

<?php
$PDO->exec("LOCK TABLES tblclients WRITE");
exit;
?>

然后立即关闭来自PDO的mysql连接并释放锁。为了正确测试这一点,您可以尝试使用两个单独的连接并选择不锁定 sleep 一段时间的连接,以便您可以手动运行查询.

关于PHP PDO 未锁定 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19381952/

相关文章:

php - 如何将变量绑定(bind)到闭包?

php - Laravel 验证登录

php - 使用 MySQL 的原则

mysql - 仅显示 MySQL 中具有相同 order_id 的行的一行

php - 如何在 DSN 中指定用户名和密码?

php - 将每个 'StudentAnswer' 字段显示为其关联的每个 'AnswerContent' 字段 (php)

php - 在网站上显示一些统计信息的最佳方式?

php - 在 php 初始化时定义 php 变量

php - 带占位符的 PDO 准备好的语句不起作用

php - 计算 PDO 准备语句中的行数