如果我向数据库请求,我有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();
}
我尝试将db请求完全注释到这个区域
$query = "DELETE FROM users WHERE num = '$num' AND password = '$pw'";
$result = $connection->query($query);
,然后我的代码运行良好,但我想提出请求。数据库请求也正常工作,删除行。我想说如果我使用删除请求responseText不起作用,但是当我评论删除请求时它会起作用。
答案 0 :(得分:0)
您的数据库查询可能失败,有两个部分需要解决此问题:
您可以在浏览器中查看它,只需转到发出AJAX请求的URL,或使用Dev Tools查看响应(如下所述:Request Monitoring in Chrome)。
此外,您应该在try / catch块中包装依赖于外部事物(如数据库,API或任何用户数据)的任何内容,以便您可以处理任何意外错误,如下所示:
try {
$result = $connection->query($query);
}
catch(Exception $e) {
Log::Error($e->getMessage();
}
关闭显示错误是使用ini_set('display_errors', 1);
完成的,或者通过实际更改php.ini,可以在此处找到更多详细信息: