Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ajax返回错误状态代码_Php_Mysql - Fatal编程技术网

Php ajax返回错误状态代码

Php ajax返回错误状态代码,php,mysql,Php,Mysql,我正在一个小网站上工作,在那里我正在进行一个ajax调用,以从表中删除一行。我想做的是让php返回一个状态代码来触发ajax请求中的.success或.fail函数。 针对不同的问题,我提出了这个解决方案,但它不起作用: AJAX调用: function delete_mov(id){ $.ajax("delete_mov.php?id="+id ) .success(function(){ bootbox.alert("Movimento "+id+"

我正在一个小网站上工作,在那里我正在进行一个ajax调用,以从表中删除一行。我想做的是让php返回一个状态代码来触发ajax请求中的
.success
.fail
函数。 针对不同的问题,我提出了这个解决方案,但它不起作用:

AJAX调用:

  function delete_mov(id){
    $.ajax("delete_mov.php?id="+id
    )
    .success(function(){
      bootbox.alert("Movimento "+id+" correttamente cancellato");
    })
    .fail(function(){
      bootbox.alert("Problemi a cancellare il movimento "+id);
    });
  }
和php:

try{
    $s = $dbh -> prepare("DELETE FROM movimenti_banca WHERE di=$id");
    $s -> execute();
}
catch (PDOException $e){
    http_response_code(500);
    exit;
    //$message = $error_message.' '.$e->getMessage();
}
http_response_code(200);
我无法得到的是在查询未执行或返回错误时触发
.fail
。我确信这个查询失败了,因为我在里面放了一个错误(di而不是id)来确保这一点。 如果删除要调用的php文件,就会触发
.fail

编辑:修改我的代码以使用
http\u response\u code
测试它,但在查询失败时仍不会触发500状态。


EDIT2:调试时我意识到,即使查询有错误(
di=$id
应该是
id=$id
),也不会输入catch部分,因此在PHP代码中永远不会设置状态500,使用函数将HTTP状态代码设置为您梦想的任何代码。

jQuery不知道PHP脚本应该做什么,所以它不会在返回的结果中查找“status”变量。jQuery只知道实际的HTTP请求是否“工作”。如果它得到一个200的结果,这就是成功,不管结果中有什么


您需要让
success
处理程序查找HTTP请求成功但数据显示“error”的情况,或者(更好)让PHP脚本使用
HTTP\u response\u code()
将HTTP状态从200更改为类似400或500的值,这将指示错误。

这正是我在php中试图得到的。返回500状态。所以我要用http_响应_代码,很好知道!谢谢:)我试图将您的解决方案应用于我的代码(请参阅编辑的代码),但它总是返回200。我错过了什么?