使用PHP和angular.js

时间:2015-10-08 10:42:49

标签: javascript php angularjs

当sql查询不能使用PHP和angular.js执行时,我需要将值返回给错误回调函数。我正在解释下面的代码。

  

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);
     });
})

这里我的要求是当查询将执行变量$data时将返回成功回调函数,当它由于任何错误的id而无法执行时,某些消息将返回错误回调函数。请帮助我。

1 个答案:

答案 0 :(得分:0)

$http response回调参数需要服务器状态代码,而不是SQL错误或任何其他类型的消息。因此,无论如何,如果您收到查询错误(甚至是没有结果的成功查询),如果满足HTTP请求的承诺,您将收到成功,但响应将如果有问题,可以是SQL错误消息(或代码)。

您必须在PHP中检查查询问题并在那里处理它。然后,如果需要,您可以使用新的HTTP状态响应发送标头,或者只发送原始消息文本。

例如:

<?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);
?>