代码之家  ›  专栏  ›  技术社区  ›  XpressGeek

共享托管服务器通过原始PHP api在短时间内返回以前的数据

  •  0
  • XpressGeek  · 技术社区  · 4 年前

    我正在使用原始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供电。我假设共享托管服务器的问题背后有缓存,但我不确定。

    0 回复  |  直到 4 年前