我想用我的php脚本锁定一个mysql表,以便在原始脚本解锁表之前,不允许继续尝试在该表上执行写入查询的其他脚本。
怎么做? (希望有一些失败的安全方法)。
我尝试过这个并不起作用:
test1.php
<?php
include 'init.php';
$q = "LOCK TABLE vars WRITE";
mysql_query($q);
echo "Table locked for writing (you wish)\n";
sleep(10);
$q = "UNLOCK TABLE vars";
mysql_query($q);
?>
test2.php
<?php
include 'init.php';
$q = "INSERT INTO vars VALUES ('test', '2016-01-01 00:00:00')";
$rows = mysql_query($q);
echo "Done!";
?>
答案 0 :(得分:0)
测试示例实际上可以正常工作 - 我只需要正确配置运行这些脚本的mysql yuser的权限。有问题的mysql用户没有LOCK TABLES特权,test1.php中的第一个语句实际上是在发出一条我没有检查的无提示错误消息。