准备好的声明不在锁定下执行

0 php mysql prepared-statement

我发现我无法在表锁下执行准备的声明中,页面锁定了,就好像在命令正在等待释放,我不得不手动杀死锁.

这只是一个示例:

mysql_query("LOCK TABLE TBL WRITE");

$stmt = $mysqli->prepare("INSERT INTO TBL (ID) VALUES (?)");
$stmt->bind_param("i", $nextID);
$stmt->execute();

mysql_query("UNLOCK TABLES");
Run Code Online (Sandbox Code Playgroud)

有没有理由这样的情况?在介绍准备好的语句之前,它没有锁的执行效果很好.
这仅用于学习目的,所以请不要评论为什么需要锁定和自动增加ID的:)

谢谢.

You*_*nse 5

mysql_query$mysqli->prepare

您将表格锁定在已建立的连接中,mysql_connect
难怪表格被锁定在所有其他连接中,包括由mysqli创建的连接.