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

DELETE、、INSERTまたはUPDATEステートメントの場合は、 PDOStatement::rowCount() を使用します

SELECTステートメントの場合は、ループ内で行を手動でカウントするか (たとえば、カウントが特定のしきい値を超えた場合はループから抜けるwhile( $sth->fetch() )ことができbreakます)、別のクエリを実行して、データベースに行カウントを返させます (たとえば、SELECT COUNT(*) FROM table WHERE column = ?)。

于 2012-08-28T19:27:02.087 に答える