Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP PDO未锁定MySQL表_Php_Mysql_Pdo - Fatal编程技术网

PHP PDO未锁定MySQL表

PHP PDO未锁定MySQL表,php,mysql,pdo,Php,Mysql,Pdo,我试图在PHP脚本中运行此命令以锁定我的表: $PDO->exec('LOCK TABLES `tblclients` WRITE'); 运行该脚本后,我尝试从MySQL Workbench内的表中选择,以验证该表是否已实际锁定。SELECT运行平稳,这告诉我该表实际上从未被锁定。我说得对吗 如果我只是从MySQL Workbench内部运行LOCK TABLES tblclients WRITE,然后尝试SELECT该表确实显示为已锁定,并防止SELECT触发 当我从PHP脚本运行该查

我试图在PHP脚本中运行此命令以锁定我的表:

$PDO->exec('LOCK TABLES `tblclients` WRITE');
运行该脚本后,我尝试从MySQL Workbench内的表中选择,以验证该表是否已实际锁定。
SELECT
运行平稳,这告诉我该表实际上从未被锁定。我说得对吗

如果我只是从MySQL Workbench内部运行
LOCK TABLES tblclients WRITE
,然后尝试
SELECT
该表确实显示为已锁定,并防止
SELECT
触发

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

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


有什么想法吗?

MySQL
锁表
是一种每会话操作。如果你像这样跑

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


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

您确定查询成功吗?结果如何?PDO是否引发异常?@ExplosionPills查询
锁表tblclients WRITE
没有失败。我没有收到任何错误,PDO也不会抛出任何异常。
exec
的返回值是多少?嗯,它返回
0
。。。所以我想无论什么原因,它都是失败的0=失败?我的
exec
语句返回
0
,因此出于某种原因,它似乎失败了,并且从未真正锁定table@FastTrack你确定PDO用户有锁授权吗?是的-我刚刚运行了
SHOW grants
,它返回了
GRANT将**上的所有权限授予给带有GRANT的'root'@'localhost'OPTION
@FastTrack-
锁表
语句不改变行,它只返回零。@alvarog.Vicario你说得对!我仍在苦苦思索为什么我可以在脚本仍在运行时执行
SELECTS/UPDATES
。。。我锁定表格,运行数千行
更新
,同时,我仍然可以
在该表格上选择/更新
。。。