几年前,我为我的一些移动应用程序创建了一个后端(PHP 来获取一些 json 数据)。从那时起我就没有碰过这段代码。现在它几周前就停止工作了。我不是后端开发人员,所以我在这里没有太多经验,但几年前我认为创建自己的后端而不是使用 Firebase/Serverless 会更好......这不是我最好的主意:)
我尝试了什么:
One moment, please...
Please wait while your request is being verified...
这是我的 php 文件:
$response = array();
function saveResultOfQueryToArray($result){
global $response;
$response['workouts'] = array();
while($row = mysqli_fetch_array($result)){
$temp = array();
// $temp['aufruf'] = $aufruf;
$temp['error'] = false;
$temp['workoutname'] = $row['workoutname'];
$temp['duration'] = $row['duration'];
...
array_push($response['workouts'],$temp);
}
}
if($_SERVER['REQUEST_METHOD']=='GET') {
$db = new DbOperation();
$users = $db->getHighestRatingWith31Results();
saveResultOfQueryToArray($users, $chooseMethod);
}
else {
$response['error'] = true;
$response['message'] = "Invalid Request";
}
echo json_encode($response);
有人可以向我解释一下我做错了什么/可以改变什么吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
看起来
if($_SERVER['REQUEST_METHOD'] == 'GET')没有$response。除非代码中有更多内容,否则$response未定义。if($_SERVER['REQUEST_METHOD']=='GET') { $db = new DbOperation(); $users = $db->getHighestRatingWith31Results(); saveResultOfQueryToArray($users, $chooseMethod); $response['error'] = false; $response['message'] = 'Whatever you want returned here.'; else { $response['error'] = true; $response['message'] = "Invalid Request"; } echo json_encode($response);类似的东西应该可以解决问题!我还建议查看 HTTP 响应,例如 HTTP 405。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405
编辑:我看到了您的更新,很抱歉,但这引发了更多问题。也就是说,
$db->getHighestRatingWith31Results();是做什么的?函数saveResultOfQueryToArray()接受一个参数,但用法是给函数提供两个参数? saveResultOfQueryToArray 正在调用 mysqli_fetch_array(),它需要一个 mysqli_result 实例。这是我的建议:
saveResultOfQueryToArray()返回 $response,要么考虑通过引用传递。 https://www.php.net/manual/en/language。 references.pass.php