PHP mysql写锁不';不允许更新数据库。应该能够更新哪些锁的连接

PHP mysql写锁不';不允许更新数据库。应该能够更新哪些锁的连接,php,database,mysqli,pdo,locking,Php,Database,Mysqli,Pdo,Locking,我试图在数据库中锁定(写入)一个表,当它被锁定时,我想更新一些字段,然后解锁该表。似乎一旦我锁定了一个表,锁定表的连接也被锁定了。但是写锁定的目的是禁用其他连接,而不是执行锁定的连接。我尝试使用mysqli和PDO,但似乎都不起作用 我还直接在phpmyadmin中进行了尝试,效果很好 我正在使用PHP5.6和mysqli/PDO扩展。 如果我直接在phpmyadmin中执行它,那么它就会工作: LOCK TABLE `catalogue_user` WRITE; UPDATE `catalog

我试图在数据库中锁定(写入)一个表,当它被锁定时,我想更新一些字段,然后解锁该表。似乎一旦我锁定了一个表,锁定表的连接也被锁定了。但是写锁定的目的是禁用其他连接,而不是执行锁定的连接。我尝试使用mysqli和PDO,但似乎都不起作用

我还直接在phpmyadmin中进行了尝试,效果很好

我正在使用PHP5.6和mysqli/PDO扩展。 如果我直接在phpmyadmin中执行它,那么它就会工作:

LOCK TABLE `catalogue_user` WRITE;
UPDATE `catalogue_user` SET update_time = NOW() WHERE catalogue_user_id = 5;
SELECT SLEEP(10);
SELECT NOW();
我需要在锁定后立即更新“更新时间”(而其他人无法访问表)

试试看{
$conn=new-PDO(“mysql:host=“.DB_-host.”dbname=“.DB_-dbname,DB_-USER,DB_-PASS”);
//将PDO错误模式设置为异常
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
echo“连接成功”;
var_dump(日期(“H:i:s”);
$conn->exec(“锁表”.DB\u表\u目录\u用户.WRITE;”;
$conn->exec(“UPDATE”.DB\u TABLE\u catalog\u USER.“SET UPDATE\u time=”)。date(“H:i:s”)。“WHERE catalog\u USER\u id=5”);
睡眠(10);
$conn->exec(“解锁表;”);
var_dump(日期(“H:i:s”);
}
捕获(PDO$e)
{
echo“连接失败:”..e->getMessage();
}

我到处都在寻找可能的线索,但没有一个有效…

应该是
锁表
而不是
锁表
。我认为它既适用于表,也适用于表。请点击此处:。不管怎样,我试图改变它,但结果是一样的。实际上现在发生的是更新被触发了两次。锁定开始时一次,锁定完成时一次。我真的很困惑。。。这怎么可能呢?因为您两次调用这个脚本,所以我没有这样做:)它应该是
锁表
而不是
锁表
。我认为它同时适用于表和表。请点击此处:。不管怎样,我试图改变它,但结果是一样的。实际上现在发生的是更新被触发了两次。锁定开始时一次,锁定完成时一次。我真的很困惑。。。这怎么可能呢?因为您两次调用此脚本,所以我没有这样做:)