从 PDO 多个查询中检索多个结果集
PDO_MYSQLND 驱动程序在 PHP 版本 5.3 中引入了对多个查询的支持。这允许用户同时执行多个 SQL 查询。但是,从这些查询中检索所有结果集可能具有挑战性。
问题陈述
查询“SELECT 1; SELECT 2;”将执行两个查询,但仅返回第一个查询的结果集。第二个结果集似乎被丢弃。
解决方案
要检索多个结果集,必须使用 PDOStatement::nextRowset 方法。此方法将光标前进到下一个行集的开头。通过在第一个查询后调用 nextRowset,用户可以访问第二个查询的结果集。
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
这将返回第二个查询的结果集。
优点和缺点
此实现允许使用不同的 FETCH 样式获取每个查询的结果。然而,它可能比简单地返回一个数组下的所有结果集的实现更复杂。尽管如此,灵活处理多个结果的能力在某些情况下可能很有价值。
以上是如何从单个 PDO MySQL 查询中检索多个结果集?的详细内容。更多信息请关注PHP中文网其他相关文章!