php - 如何在一条语句中执行多个选择查询?

标签 php mysql select pdo

我正在尝试使用 php 在单个查询中执行 mysql 中的多个 select 语句。

select * from clients;
select * from users;
select * from products;

Mysql workbench只返回最后一条sql语句的记录。 我的 PHP 代码是

$query = "select * from table1;select * from table2;" 
$result = $pdo->prepare($query);
$result->execute();
$rows = $result->fetchAll(PDO::FETCH_NAMED);

我得到了错误

SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other 
unbuffered queries are active.  Consider using PDOStatement::fetchAll().     
Alternatively, if your code is only ever going to run against mysql, 
you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY    
attribute 

是否可以像 MSSQL 一样一次执行多个选择查询并获得所有结果?

目前我唯一的解决方法是循环执行单个 sql 并动态构建响应。

最佳答案

尝试mysqli::multi_query
http://www.php.net/manual/en/mysqli.multi-query.php

我用它来上传预生成的转储文件,所以它只有 CREATE TABLEINSERT 语句,但是手册说 SELECT 工作正常两个。

而且我确信 PDO 扩展具有相同的方法。

关于php - 如何在一条语句中执行多个选择查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022768/

相关文章:

php - 调试递归 while 循环 (php)

php - 违反完整性约束-子记录发现异常

php获取字符之间的字符串

sql - mysql 5 (5.1.42) 中的多列子选择

c++ - 套接字选择减少文件描述符集中套接字的数量

php - "performance impact"使用 20K 行单类时

php - 如何在列表中显示大使教子的名字?

php - (PHP) 我的数组中有未知数量的键值对,如何在 SQL 查询中使用它们?

sql - 有没有比使用子查询更好的方法来编写此 SQL SELECT 语句?

php - 是否可以在 laravel 中使用相关模型执行这个原始 sql 查询?