我目前在使用准备好的语句时执行两个查询。一个用于获取结果,另一个用于获取找到的行数。以前我可以通过 mysql_num_rows
的一个查询来完成此操作。对于较大的查询,我不想复制和粘贴查询并使用 COUNT 每个查询。有没有一种方法可以像 mysql_num_rows
这样在一个查询中执行此操作?
$connectdb->prepare("SELECT * FROM users WHERE username=:username");
$connectdb->prepare("SELECT COUNT(*) FROM users WHERE username=:username");
$query = $connectdb->execute(array(':username'=>$username));
$numrows = $query->fetchColumn();
if($numrows!=0) {
while(false !==($row = $query->fetch()))
{
最佳答案
该语句已具有行计数:PDOStatement::rowCount()
因此,仅使用 $query->rowCount();
和您的第一个查询
PS:您的代码看起来根本无法工作。正确的应该是:
$stmt = $connectdb->prepare("SELECT * FROM users WHERE username=:username");
$stmt->execute(array(':username'=>$username));
...
关于php - PDO 两个查询,一个用于找到的行,另一个用于结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11322462/