首页 > 解决方案 > 共享托管服务器通过原始 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 供电。我假设在该共享托管服务器中存在一些缓存问题,但我不确定。

标签: phpmysqlapipostmancpanel

解决方案


推荐阅读