删除查询受影响的行返回大于0,或者DB中没有记录

时间:2017-01-14 19:15:33

标签: php mysql

这是一段代码

    public static function delete_ques($ques_id) {
        $con = Connection::get_Connection();
        $sql_delete = "DELETE FROM question WHERE ques_id = " . $ques_id;
        $result_delete = $con->query($sql_delete);
        if ($result_delete->rowCount()) {
            $con->close();
            echo 'hell not ';
            return true;
        } else {
            $con->close();
            echo 'hell yes';
            return false;
        }
    }

我无法弄清楚为什么会发生这种情况

1 个答案:

答案 0 :(得分:0)

您遇到的问题是因为 rowCount()。根据php.net

  

rowCount()返回受相应 PDOStatement对象执行的最后一个DELETE,INSERT或UPDATE语句影响的行数。

在你的情况下,我会使用affected_rows。所以你if-else代码块就像这样

if ($con->affected_rows) {
        $con->close();
        echo 'hell not ';
        return true;
} else {
        $con->close();
        echo 'hell yes';
        return false;
}