php - 如何在一个 MySQL 查询中组合两个 PDO 语句?

标签 php mysql pdo

根据我现在对 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 语句?谢谢。

最佳答案

答案可能取决于您尝试组合哪些操作。例如,如果您尝试将 PDOStatement::rowCount()SELECT SQL 操作结合起来,那么可能值得注意 PDOStatement::rowCount() description 中的警告,其中表示 rowCount() 对于所有数据库中的 SELECT 语句并非 100% 可靠。

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

关于php - 如何在一个 MySQL 查询中组合两个 PDO 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11038547/

相关文章:

php - 使用 Telegram Bot 运行根脚本

mysql - 按顺序插入或打开表单到特定记录,同时仍然可以查看其他记录

mysql - 使用 Cloud SQL 在 Google App Engine 上扬 sails 起航

php - 我的 PHP 代码中解析错误 : Syntax error, 意外的文件结尾

php - 如何启用 opcache.load_comments php 7.1

php - 数组操作: Convert one array to another

PHP/MySQL 每行都有不同的值

php - 通过 PDO 查询将 MySQL 数据库的每一行存储在一个对象中?

PHP - 根据 id 打开页面

mysql - 如何对数组中的特定字段进行分组?