使用PDO获取行数和计数

时间:2011-09-30 11:45:09

标签: php mysql pdo

更新1:

我刚刚在手册中注意到PDO::MYSQL_ATTR_FOUND_ROWS,但我不确定如何将其与原始问题中的以下代码相结合和/或是否会回答我的问题?

原始问题:

我目前有以下工作,它返回数据行:

function my_function()
{
    $DBH = new PDO( "mysql:host=server;dbname=database", "user", "pass" );
    $DBH -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

    $STH = $DBH -> prepare( "select * from table 1" );

    $STH -> execute();

    $ROWS = $STH -> fetchAll();

    foreach($ROWS as $ROW) {
        $output .= $ROW["col1"] . " - " . $ROW["col2"] . "<br />";
    }

    $DBH = null;

    return $output;
}

如何计算返回的行数?我查看了PDO的rowCount()函数,但它返回了对updateinsertdelete生效的行。我想得到select返回的行数。

我知道我可以在循环中递增一个整数,即i ++,但这似乎有点原始。我猜有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

rowCount返回与SELECT语句一起使用时匹配的行数。

答案 1 :(得分:2)

count($ROWS);