我有一个问题可能是你可以帮助我:
我对我的 PHP 函数使用 ajax 有多个请求,例如在 10-00。
我的 PHP 文件功能:
public function calculate(){
$result = DB::query('SELECT * FROM `results` WHERE `time` > DATE_SUB(NOW(), INTERVAL "25" SECOND) ORDER BY `gameid` DESC LIMIT 1');
if (intval($result->num_rows) > 0) {
return json_decode($result->fetch_object()->data);
} else {
/*RESULT CALCULATION CODE /*SELECT FROM `players`....*/
$publish_date = date("Y-m-d H:i:s");
$result = DB::prepare("INSERT INTO `results` (`data`, `time`) VALUES (?,?) ON DUPLICATE KEY UPDATE `data` = VALUES(data), `time` = VALUES(time)");
$result->bind_param("ss", json_encode($arr), $publish_date);
$result->execute();
$result->close();
DB::query('TRUNCATE TABLE `players`'); /*WE CLEAN TABLE HERE*/
return $arr;
}
}
所以我的一个客户请求应该首先计算结果并将其存储在表results
中。
其他请求应从results
表中获取信息而无需进行新计算。我该如何解决这个问题(LOCK TABLE???)?谢谢!