显示已删除记录的计数

时间:2014-08-30 11:22:41

标签: php sql prepared-statement

我有一些简单的代码可以删除小于特定日期的表中的每条记录。我使用PDO作为数据库访问方法。

如何查看 (并因此向用户报告) 数据库中实际删除了多少条记录?

我在考虑交易(计数记录要删除 - >执行删除 - >如果一切正常 - 向用户显示计数记录),但必须有一个更简单的方法,不是吗?

执行似乎只返回一个布尔值,它只能给我一个成功的指示。

$date = new DateTime('2014-06-22 12:00:00');

try{
    $datestring = $date->format('Y-m-d H:i:s');
    $dbh = getConnected($host,$user,$pass,$db);
    $stmt = $dbh->prepare("DELETE FROM sometable WHERE date_and_time < '$datestring'");
    $stmt->execute();
    echo "$rd records deleted"; // where $rd = number of records deleted returned from the query
}
catch(PDOException $e)
{
    echo 'Something went wrong!';
    error_log($e->getMessage().PHP_EOL, 3, "errors.log");
}

$dbh -> connection = null;

3 个答案:

答案 0 :(得分:3)

$stmt->rowCount();

将为您提供受影响的行数

PDO rowcount

答案 1 :(得分:0)

试试affected_rows function

printf("rows inserted: %d\n", $stmt->affected_rows);  

答案 2 :(得分:0)

如果是使用mysqli(未说明或清楚),在您的情况下,请执行$ stmt-&gt; affected_rows

请参阅http://php.net/manual/en/mysqli-stmt.affected-rows.php