如何轻松获取"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。
对于DELETE
、INSERT
或UPDATE
语句,请使用PDOStatement::rowCount()。
对于SELECT
语句,请在while( $sth->fetch() )
循环中手动对行进行计数(例如,如果计数超过某个阈值,则可以将break
从循环中取出),或者执行单独的查询以使数据库返回行计数(例如SELECT COUNT(*) FROM table WHERE column = ?
)。