gpt4 book ai didi

javascript - 如果我有对数据库的请求,JSON 解析不起作用

转载 作者:行者123 更新时间:2023-11-29 18:11:25 28 4
gpt4 key购买 nike

如果我向数据库请求,我会遇到 json 解析错误。我的 php 代码是:

if($result->num_rows){
header('Content-Type: application/json');
echo json_encode(array("msg" => "close"));
$query = "DELETE FROM users WHERE num = '$num' AND password = '$pw'";
$result = $connection->query($query);
}else {
$myArr = array("msg" => "Неверный пароль!");
echo json_encode($myArr);
exit();
}

Ajax请求代码是:

function ajaxLoad(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}

我尝试在这个区域评论数据库请求

$query = "从用户中删除,其中 num = '$num' AND 密码 = '$pw'";
$result = $connection->query($query);

,那么我的代码运行良好,但我想提出一个请求。数据库请求也正常工作,它删除了该行。我想说,如果我使用删除请求,responseText 不起作用,但当我评论删除请求时,它会起作用。

最佳答案

您的数据库查询可能失败,有两个部分可以解决此问题:

  1. 您需要修复错误,第一步是查看错误到底是什么,您可以通过查看日志或 AJAX 请求返回的实际输出来执行此操作。

您可以通过访问 AJAX 请求所针对的 URL 在浏览器中查看它,或者使用开发工具查看响应(此处描述:Request Monitoring in Chrome)来完成此操作。

此外,您应该将任何依赖于外部事物(例如数据库、API 或任何用户数据)的内容包装在 try/catch block 中,以便可以处理任何意外错误,如下所示:

try {
$result = $connection->query($query);
}
catch(Exception $e) {
Log::Error($e->getMessage();
}
  • 您的数据库错误不应输出到屏幕(或在本例中作为响应的一部分)。
  • 使用 ini_set('display_errors', 1); 可以关闭显示错误,或者通过实际更改 php.ini 来完成,更多详细信息可以在此处找到:

    Turn off warnings and errors on php/mysql

    关于javascript - 如果我有对数据库的请求,JSON 解析不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47366347/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com