当我运行此脚本时,即使id不存在且没有记录受到影响,我也总是会收到成功消息"successfully deleted"
。知道为什么吗?我该如何解决这个问题?
$app->post('/api/delete', function(Request $request, Response $response) {
$id = $request->getParam('id');
$sql = "DELETE FROM test WHERE id=:id";
try{
// Get DB Object
$db = new db();
// Connect
$db = $db->connect();
$stmt = $db->prepare($sql);
$stmt->bindParam(':id', $id);
$stmt->execute();
echo '{"notice": {"text": "successfully deleted"}}' ;
} catch(PDOException $e){
//echo '{"error": {"text": '.$e->getMessage().'}}';
return $response->withStatus(400)->write('{"error": {"text": '.$e->getMessage().'}}');
}
});
答案 0 :(得分:1)
需要在那里使用rowCount(): -
$app->post('/api/delete', function(Request $request, Response $response) {
$id = $request->getParam('id');
$sql = "DELETE FROM test WHERE id=:id";
try{
// Get DB Object
$db = new db();
// Connect
$db = $db->connect();
$stmt = $db->prepare($sql);
$stmt->bindParam(':id', $id);
$stmt->execute();
$count = $stmt->rowCount();
if($count >0){
echo '{"notice": {"text": "successfully deleted"}}' ;
}
} catch(PDOException $e){
//echo '{"error": {"text": '.$e->getMessage().'}}';
return $response->withStatus(400)->write('{"error": {"text": '.$e->getMessage().'}}');
}
});
答案 1 :(得分:0)
passport.authenticate()