使用PHP和angular.js将值返回到错误回调函数

I need to return value to error call back function when the sql query will not execute using PHP and angular.js.I am explaining my code below.

session.php:

<?php
session_start();
$connect = mysqli_connect("localhost", "root", "Oditek123@", "******");
$result = mysqli_query($connect, "SELECT * FROM db_Admin_Master WHERE id=". $_SESSION["admin_id"]);
$data = array();
while ($row =mysqli_fetch_assoc($result)) {
  $data[] = $row;
}
    print json_encode($data);
?>

dashboardController.js:

var dashboard=angular.module('Channabasavashwara');
dashboard.controller('dashboardController',function($scope,$http){
     $http({
         method: 'GET',
         url: 'php/Login/session.php',
         headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
     }).then(function successCallback(response){
         //console.log('session',response);
         $scope.userType=response.data[0].user_name;
     },function errorCallback(response) {
         //console.log('session',response);
     });
})

Here my requirement is when the query will execute the variable $data will return to success callback function and when it will not execute due to any wrong id some message will return to error call back function.Please help me.

dongzanghua8422
dongzanghua8422 让我们在聊天中继续讨论。
大约 5 年之前 回复
drxkx6149
drxkx6149 好的,所以在会话情况下你可以像401代码那样发送,然后调用errorCallback。
大约 5 年之前 回复
dou91808
dou91808 :你能否就这个要求分享自己的想法?
大约 5 年之前 回复
duandanai6470
duandanai6470 :假设没有会话存在,我需要将一条消息返回给错误回调函数。
大约 5 年之前 回复
drug95107
drug95107 如果没有解决方法,则无法满足您的要求,因为errorCallback不适合您想要的目的
大约 5 年之前 回复
drkenap147751
drkenap147751 :这里我没有任何错误。我的要求是当由于任何错误的id而不执行select查询时,alsert消息将返回错误回调函数。
大约 5 年之前 回复
dsh12544
dsh12544 这恰恰是发生了什么。请注意,您的PHP不会测试您的查询中的错误,它会认为它会成功。您可以“伪造”您的查询测试以发送一些HTTP状态响应,因此将调用errorCallback,但我不推荐它,因为您将逃避错误回调的目的,即处理HTTP状态直接相关的问题。
大约 5 年之前 回复
douhao2721
douhao2721 我认为你需要更改你的PHP脚本,以便在出现任何查询错误时发送一些错误状态代码,如4XX或5XX。只有这样,才会调用错误回调,你可以处理它
大约 5 年之前 回复
duanpei4455
duanpei4455 :我没有得到任何sql相关的错误,我只需要根据我的要求返回值。这里的所有时间值返回成功回调函数。
大约 5 年之前 回复
dsymx68408
dsymx68408 响应回调参数只需要服务器状态代码,而不是SQL错误。因此,无论如何,如果您收到查询错误,如果满足HTTP请求的承诺,您将获得成功,但响应将是SQL错误。您必须在PHP中检查错误并在那里处理它。以供参考
大约 5 年之前 回复

1个回答

The $http response callback parameter expects a server status code, not an SQL error or any other kind of message. So by all means, if you get a query error (or even a successful query with no results), you're going to receive success if the promise of the HTTP request is fulfilled, but the response will be the SQL error message (or code), if ever handled.

You have to check for query issues inside PHP and handle it there. Then, if you want, you can send headers with a new HTTP status response, or just raw message text.

Ex:

<?php
session_start();
$connect = mysqli_connect("localhost", "root", "Oditek123@", "******");
$result = mysqli_query($connect, "SELECT * FROM db_Admin_Master WHERE id=". $_SESSION["admin_id"]);
$data = array();
if ($result) { // if everything goes ok
    while ($row =mysqli_fetch_assoc($result)) {
      $data[] = $row;
    }
} else { // else, send error
    $data['errno'] = mysqli_errno($connect);
    $data['error'] = mysqli_error($connect);
}
        print json_encode($data);
?>
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐