我有两个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"命令出了什么问题?