PDO连接:使用where子句的行计数

时间:2017-01-31 09:05:59

标签: php mysql pdo

我想计算数据库中的行数。使用where子句和AND子句计算。

请告诉我怎样才能在pdo中做到这一点..

这些是我的疑问:

$stmt=$dbh->prepare("SELECT * from questions  where (category_id = ?) AND (complexity_id = ?) ORDER BY RAND()");

$stmt->execute(array($_POST['category'],$_POST['complexity'])); 
    $data = $stmt->fetchAll(PDO::FETCH_OBJ)

count:

$nRows = $dbh->query("SELECT COUNT(*) FROM questions");

我只需要在一个查询中编写两个查询..

3 个答案:

答案 0 :(得分:1)

您可以使用fetchColumn

 $number_of_rows=$stmt->fetchColumn(); // will give no. of rows
 $data = $stmt->fetchAll(PDO::FETCH_ASSOC)// give the data array

答案 1 :(得分:0)

如果您的查询不同

如果您的查询不同(如问题中所示),请将它们保存为两个单独的查询。没有办法让它们合二为一。只需留下两个单独的查询,它就可以了。

如果您的查询实际上相同

如果您的查询实际上相同,并且您希望过滤数据并获得行数,那么您根本不需要第二个查询。在PHP中,有一个名为count()的函数。您可以使用它来计算第一个查询返回的结果。

$nRows = count($data);

就像那个一样简单

答案 2 :(得分:-1)

你能使用

吗?
$stmt=$dbh->prepare("SELECT COUNT(*) from questions  where (category_id = ?) AND (complexity_id = ?)");

查询?