【发布时间】:2012-07-25 23:25:00
【问题描述】:
情况如下: 1- MySQL InnoDB 表进行事务选择如下:
<?php
....
doQuery('START TRANSACTION');
$sql = "SELECT * FROM table where amount < 10 FOR UPDATE";
$res = $doQuery($sql);
// Then a looping through $res includes updates to some fields -amount field- in the same table and set it to values greater than 10
//After the loop
doQuery('COMMIT');
在 XAMPP localhost,我打开了两个不同浏览器的窗口,FireFox 和 Opera,同时请求脚本 URL。我希望其中只有一个能够检索 $res 的值。但是,该脚本返回胎儿错误
块引用 致命错误:超过 30 秒的最大执行时间
我需要知道这个错误的原因吗?是因为 FireFox 和 Opera 这两个客户端无法选择还是因为它们无法更新? 我还需要一个保持交易并给我预期结果的解决方案,即只有一个浏览器可以返回结果!
【问题讨论】:
-
您的问题与浏览器无关。表中有多少行?你的更新声明是什么样的?
-
此时表格行数不超过30行,非常少!关于更新语句,它在循环内部执行并更新$res中的记录。
标签: php mysql transactions innodb cakephp-1.2