php - 在 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)
?>
使用邮递员的结果截图(不工作但在 localhost 中工作的 ID):
我尝试 过的尝试回显响应并通过使用 Postman 我意识到不返回任何内容的 id 具有以下字符:
有没有办法阻止或逃避这个角色?
解决方案
经过大量的研究和调试,我发现问题是字符编码!所以我为解决这个问题所做的是将 UTF-8 我的 mysql db 和 mysqli 参考链接:Stack Overflow Thread Credits to @04FS
推荐阅读
- php - 当我在 laravel 的刀片中使用 foreach 时,last() 或 end() 不起作用
- php - PrestaShop ObjectModelCore::hydrateCollection()
- javascript - Javascript将整数应用于其他值
- google-bigquery - BigQuery 错误:无法返回相对于 Unix 纪元的 6328502092800000000 微秒的无效时间戳值
- node.js - 在将数据库 ID 与用户请求的 ID 进行比较时,无法读取未定义的属性“forEach”
- c# - 在 C# 中运行 Powershell 脚本以启用键盘过滤器
- xml - 如何使用 go 检查 XML 文件中是否存在标签?
- javascript - 从数组中获取第二个索引之后的所有索引
- excel - 如何检查一行中的单元格是否等于其他工作表中的另一行
- ruby - 通过 Bundler 使用 Ubuntu 的 Systemd 执行 Rake 任务,退出状态 127