0

如何轻松获取“ SELECT *” SQL 查询返回的行数?

function valid_credentials($db,$name,$pw) {
    try {

    $sth = $db->prepare("SELECT * FROM ib_members WHERE name=:val AND pw=:val2");
    $sth->bindValue(":val",$name);
    $sth->bindValue(":val2",$pw);   
    $sth->execute();


    $numrows = $sth->fetchColumn();

    return $numrows;

    } catch (PDOException $e) {

        return $e->getMessage();

    }
}

返回 14,这肯定不是返回的行数,而是第一行的 ID。

4

1 回答 1

1

对于DELETEINSERTUPDATE语句,使用PDOStatement::rowCount()

对于SELECT语句,在while( $sth->fetch() )循环中手动计算行数(例如,如果计数超过某个阈值,您可以break退出循环),或者执行单独的查询以让数据库返回行数(例如,SELECT COUNT(*) FROM table WHERE column = ?)。

于 2012-08-28T19:27:02.087 回答