0

根据我现在对 PDO 语句的了解以及我自己在 localhost 和 Google 上的经验 - 在一个查询中使用多个 PDO 语句存在一些困难。比如这种情况:

$stmt = $db_people->prepare("SELECT * FROM people WHERE online=1");
$stmt->execute();
$results_people = $stmt->fetch(PDO::FETCH_ASSOC);

在此查询中,我可以执行简单的 PDO 语句,例如 fetch(例如)。但是当我想像这样使用 PDO 语句时:

$rows = $stmt->rowCount();

这是不可能的,并且该语句不会返回正确的行数。当我以另一种方式执行此操作并填充其中一个列名时 - rowCount 像这样正常工作:

$stmt = $db_people->prepare("SELECT name FROM people WHERE online=1");
$stmt->execute();
$rows = $stmt->rowCount();

然后像这样添加 fetch :

$results_people = $stmt->fetch(PDO::FETCH_ASSOC);

在此示例中将无法正常工作。我的问题是 - 如何在一个查询中组合两个不同的 PDO 语句?谢谢你。

4

1 回答 1

2

答案可能取决于您尝试组合哪些操作。例如,如果您尝试PDOStatement::rowCount()SELECTSQL 操作结合使用,那么可能值得注意PDOStatement::rowCount()描述rowCount()中的警告,即对于所有数据库中的 SELECT 语句来说,这并不是 100% 可靠的。

如果您尝试解决的问题特别限于计算 SELECT 的结果行,那么另一种方法是使用PDOStatement::fetchAll()并计算返回数组中的行数。

于 2012-06-14T18:28:06.380 回答