【发布时间】:2018-12-29 12:47:21
【问题描述】:
我有一个文本视图,当我点击它时,如果我的用户 id 等于表中的 id,它会从表中删除一行。但是现在我想删除来自用户的两个不同数据等于表中数据的行。 这是我的php代码:
public function deleteUser($email, $name){
$stmt = $this->con->prepare("DELETE FROM users WHERE email = ? AND name = ?");
$stmt->bind_param("ss", $email, $name);
if($stmt->execute())
return true;
return false;
}
$app->delete('/deleteuser/{email}{name}', function(Request $request, Response $response, array $args){
$email = $args['email'];
$name = $args['name'];
$db = new DbOperations;
$response_data = array();
if($db->deleteUser($email, $name)){
$response_data['error'] = false;
$response_data['message'] = 'User has been deleted';
}else{
$response_data['error'] = true;
$response_data['message'] = 'Plase try again later';
}
$response->write(json_encode($response_data));
return $response
->withHeader('Content-type', 'application/json')
->withStatus(200);
});
我已经使用 postman 对其进行了测试,它运行良好,但是当我将此代码实现到 android 时它崩溃了。这是我的 API 类:
@DELETE("deleteuser/{email}{name}")
Call<DefaultResponse> deleteUser(
@Field("email") String email,
@Field("name") String name
);
这是我删除用户的活动:
User user = SharedPrefManager.getInstance(MySettingsActivity.this).getUser();
Call<DefaultResponse> call = RetrofitClient.getInstance().getApi().deleteUser(user.getEmail(),user.getName());
call.enqueue(new Callback<DefaultResponse>() {
@Override
public void onResponse(Call<DefaultResponse> call, Response<DefaultResponse> response) {
if (!response.body().isErr()){
// SharedPrefManager.getInstance(MySettingsActivity.this).clear();
// Intent deleteIntent = new Intent(MySettingsActivity.this, WelcomeActivity.class);
// deleteIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
// startActivity(deleteIntent);
}
Toast.makeText(MySettingsActivity.this, response.body().getMsg(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<DefaultResponse> call, Throwable t) {
}
});
当我仅通过一个数据(例如 id)删除用户时,它可以正常工作,但是当我想通过两个数据删除它时,它会崩溃吗?请帮助我哪里有错误?
【问题讨论】: