我正在使用原始PHP开发API。对于我的项目,我从MySQL数据库表中获取一条随机记录。我有一张桌子叫
“字典”
在我的数据库中,通过PHP返回一个随机单词。
我的API运行良好,但问题是,如果我在1分钟内多次点击服务器,服务器会给出与之前相同的结果
.但如果我等一分钟或更长时间,点击API,服务器就会给我新的数据。我包括我的简单API代码。
我的随机取词API:
function get_dictionary_puzzle()
{
require_once("config.php");
$random_id = rand(1, 1000);
$query = "select * from dictionary where id=$random_id";
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
$output = array("code" => "200",
"msg" => "data_fetched_successfully",
"question" => $row['english_word'],
"answer" => $row['spanish_word']
);
}
echo json_encode($output, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
} else {
$output = array("code" => "201", "msg" => $conn->error);
echo json_encode($output, true);
}
mysqli_close($conn);
}
当我尝试点击这个API时,比如:
www.mysite.com/api.php?p=get_dictionary_puzzle
很好。
但我必须至少等待1分钟才能获得新的记录或数据。如果我在一分钟内多次点击API,服务器会给我以前的数据。
顺便说一下,我用不同的浏览器测试了这个API,服务器仍然需要1分钟以上的时间才能提供新数据。
我使用XAMPP本地服务器进行API测试,本地服务器立即为我提供新数据,但共享主机中的生产服务器让我感到痛苦。我的服务器由cPanel供电。我假设共享托管服务器的问题背后有缓存,但我不确定。