首页 > 解决方案 > 在 Google Cloud Platform 中部署时,PHP API Endpoint 不返回任何 JSON 数据

问题描述

所以我有一个项目,我们一直在使用谷歌云平台在服务器上进行测试。但是,当指定了特定的查询字符串 id 时,我的 API 端点没有从 AJAX 获取请求中返回任何内容(不会在 localhost 中发生)。这是代码,我也知道sql注入风险,所以请多多包涵。

PHP端点脚本:

<?php
    header("Content-Type: application/json");
    include_once __DIR__.'/../helpers/mysql.php';
    include_once __DIR__.'/../helpers/helper.php';

    $helper = new Helper();
    $db = new Mysql_Driver();

    if (isset($_GET["module_id"]))
    {
        $module_id = $_GET["module_id"];
        $db->connect();
        $query = "SELECT m.*, i.item_path FROM Module m INNER JOIN Item i ON m.module_id = i.module_id WHERE m.module_id=$module_id";
        $moduleInfoResult = $db->query($query);
        // $moduleInfo = $db->fetch_array($moduleInfoResult);

        if ($db->num_rows($moduleInfoResult) > 0) {
            $moduleInfoResult = $db->fetch_array($moduleInfoResult);
            $response = array(
                'status' => 200,
                'message' => 'Success',
                'data' => $moduleInfoResult
            );
        } else {
            $response = array(
                'status' => 404,
                'message' => 'Query Failed: Query return 0 records'
            );
        }
    } else {
        $response = array(
            'status' => 400,
            'message' => 'Error Occured: Must provide module_id query string'
        );
    }

    echo json_encode($response)
?>

使用邮递员的结果截图(正在工作的 id)在此处输入图像描述

使用邮递员的结果截图(不工作但在 localhost 中工作的 ID)在此处输入图像描述

我尝试 过的尝试回显响应并通过使用 Postman 我意识到不返回任何内容的 id 具有以下字符:

在此处输入图像描述

有没有办法阻止或逃避这个角色?

标签: phpgoogle-cloud-platform

解决方案


经过大量的研究和调试,我发现问题是字符编码!所以我为解决这个问题所做的是将 UTF-8 我的 mysql db 和 mysqli 参考链接:Stack Overflow Thread Credits to @04FS


推荐阅读