2017-03-09 77 views
0

我已经创建了一个名为DB_Functions的PHP文件,其中包含我的用户ID删除数据库行的Delete方法。代码:PHP删除函数正在删除数据库行,但响应显示错误?

//Delete User 
public function deleteUser($id){ 

    $stmt = $this->conn->prepare("DELETE FROM users WHERE user_id = ?"); 
    $stmt->bind_param("s", $id); 
    $result = $stmt->execute(); 
    $stmt->close(); 
} 

我已经再创建另一个PHP文件作为ID被接收为之后的参数后,调用该函数的端点。代码:

require_once 'include/DB_Functions.php'; 
$db = new DB_Functions(); 

//json response array 
$response = array(); 

if(isset($_POST['id'])){ 

//recieve GET parameters 
$id = $_POST['id']; 

$result = $db->deleteUser($id); 
if($result){ 
    $response["error"] = FALSE; 
    $response["message"] = "User deleted succesfully"; 
}else{ 
    $response["error"] = TRUE; 
    $response["error_msg"] = "User did not delete"; 
} 
echo json_encode($response); 
} 

当测试这个使用先进的REST客户端,并与Andriod的发展我的工作在使用时,该行从数据库中删除,但在ARC解析响应是错误信息,并在Android的logcat显示“用户未删除”的相同响应消息?

任何帮助?

+0

Android “的这个” 错误消息显示在logcat中。哪个错误? –

回答

1

在您的deleteUser功能你缺少返回声明。如果你不返回任何东西,那么函数将始终返回null

所以,在你的情况下,它返回NULL并在进一步的条件检查它会去其他情况。

public function deleteUser($id){ 

    $stmt = $this->conn->prepare("DELETE FROM users WHERE user_id = ?"); 
    $stmt->bind_param("s", $id); 
    $result = $stmt->execute(); 
    $stmt->close(); 
    return $result; // add this 
} 
+0

现在返回成功消息。非常感谢 –

2

你的函数没有return任何值,所以编译时会自动返回一个NULL值,这就是为什么总是显示错误的原因。

您需要添加一个return语句。

+0

现在返回成功消息。非常感谢 –

0

返回结果的功能...

public function deleteUser($id){ 
    $stmt = $this->conn->prepare("DELETE FROM users WHERE user_id = ?"); 
    $stmt->bind_param("s", $id); 
    $result = $stmt->execute(); 
    $stmt->close(); 
    return $result; 
} 
+0

现在返回成功消息。非常感谢 –