php - 共享托管服务器通过原始 PHP api 在短时间内返回以前的数据
问题描述
我正在使用原始 PHP 开发 API。对于我的项目,我正在从我的 MySQL 数据库表中获取一条随机记录。我的数据库中有一个名为“字典”的表,并通过 PHP 返回一个随机单词。我的 API 运行良好,但问题是如果我在 1 分钟内多次访问服务器,服务器会给我与之前相同的结果。但是,如果我等待 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 分钟才能获得新的新记录或数据。如果我在 1 分钟内多次点击 API,服务器会提供相同的先前数据。顺便说一下,我用不同的浏览器测试了这个 API,服务器仍然需要 1 多分钟才能给我新的数据。
我使用 XAMPP 本地服务器进行 API 测试,我的本地服务器立即为我提供新数据,但共享主机中的生产服务器让我很痛苦。我的服务器由 cPanel 供电。我假设在该共享托管服务器中存在一些缓存问题,但我不确定。
解决方案
推荐阅读
- javascript - 试图在反应中添加多张图片,但它只显示一张图片
- azure - 即使我使用了切换按钮并获得了用户和管理员的同意,也需要管理员同意警告
- python - TensorFlow - tensorflow.python.framework.errors_impl.FailedPreconditionError
- r - R quantmod:拉取数据时出现连接错误
- ssh - 将 Visual Studio Code (VSCode) 连接到 VirtualBox VM
- javascript - 拖拽逐渐变慢
- mysql - 通讯链路故障,Spring Boot + MySql +Docker + Hibernate
- entity-framework-6 - 在包含 EF6 中加载引用属性的引用属性
- c# - 在函数调用中实例化对象的性能(解释?)
- maven - Maven - 如何使用两个镜像