我有两个 php 页面,page1.php & page2.php
page1.php
execute_query('START TRANSACTION');
$res =execute_query('SELECT * FROM table WHERE id = 1 FOR UPDATE');
sleep(20);
print $res->first_name;
execute_query('COMMIT');
print"\n OK";
page2.php
$res =execute_query('SELECT * FROM table WHERE id = 1');
print $res->first_name;
我几乎同时执行两个页面
所以根据mysql的'FOR UPDATE'条件,page2.php中的结果只有在page1.php执行后才会显示(即page1.php中显示'OK'后),因为两个页面都读取同一行。
但正在发生的事情是,
page2.php 突然显示结果,甚至在 page1.php 执行完成之前
我可以知道'FOR UPDATE'命令有什么问题吗?