Abs*_*Abs 13 php sql odbc pdo count
我有这个:
$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$mdbFilename", $username, $password);
$sql = "SELECT * FROM this_table";
$stmt = $dbh->query($sql);
//num of rows?
Run Code Online (Sandbox Code Playgroud)
如何获取从该SELECT语句返回的行数?
谢谢大家
SELECT count(*) FROM this_table 是一个选择......
关于rowCount:
PDOStatement :: rowCount()返回由相应PDOStatement对象执行的最后一个DELETE,INSERT或UPDATE语句影响的行数.
如果关联的PDOStatement执行的最后一个SQL语句是SELECT语句,则某些数据库可能会返回该语句返回的行数.**
但是,并不保证所有数据库都有这种行为,不应依赖于便携式应用程序.
我找到了一个解决方案,使用fetchAll然后在这个数组上使用count - 这就是MySQL在内部做的事情,效率有点但它对我有用.
$q = $db->query("SELECT ...");
$rows = $q->fetchAll();
$rowCount = count($rows);
Run Code Online (Sandbox Code Playgroud)
另一个问题是,查德提供了这样的见解:
这似乎是MySQL可能的唯一原因是因为它在内部获取所有结果行并缓冲它们,以便能够为您提供此信息.请参阅mysql_unbuffered_query().如果使用该函数而不是mysql_query(),则mysql_num_rows()函数将不起作用.如果在使用PDO时确实需要知道行数,可以将PDO中的所有行提取到数组中,然后使用count().
希望这对某人有用.