У меня есть текстовое представление, когда я щелкаю по нему, оно удаляет одну строку из таблицы, если идентификатор моего пользователя равен идентификатору в таблице.Но теперь я хочу удалить строку, в которой два разных данных пользователя равны данным в таблице.Вот мой 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);
});
Я уже протестировал его с помощью почтальона, и он работает очень хорошо, но когда я внедряю этот код в 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, он работал нормально, нокогда я хочу удалить его по двум данным, он падает?Пожалуйста, помогите мне, где у меня Mistkake?