当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而无法执行时,某些消息将返回错误回调函数。请帮助我。
答案 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);
?>