【问题标题】:PDO Connection : row count using where clausePDO 连接:使用 where 子句的行数
【发布时间】:2017-01-31 09:05:59
【问题描述】:

我想计算我的数据库中的行数..以及 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");

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

【问题讨论】:

  • 请记住,如果有一天您的问题数量变得非常大,此查询可能会导致问题,因为它是无限的。

标签: php mysql pdo


【解决方案1】:

你可以使用fetchColumn

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

【讨论】:

  • 我想在上面的查询中也使用计数查询..但是当我使用计数时它显示错误..你能告诉我我们如何使用计数查询..
  • fetchColumn(); 会给计数您还想要什么。
  • ya..你说的是对的..但我只想使用 COUNT..因为使用 count 我需要隐藏我的按钮值..这就是为什么..
【解决方案2】:

如果您的查询不同

如果您的查询不同,就像问题中显示的那样,则将它们保留为两个单独的查询。没有办法将它们合二为一。只留下两个单独的查询,就可以了。

如果您的查询实际上相同

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

$nRows = count($data);

就这么简单

【讨论】:

  • 但是当我这样使用时,它不能按照我的要求工作
  • 您有什么要求?阅读我更新的答案,看在上帝的份上,告诉你的情况是什么
【解决方案3】:

你能用吗

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

查询?

【讨论】:

  • 不知道它给出了错误 Undefined property: stdClass:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
相关资源
最近更新 更多