Php 如何在一条语句中执行多个select查询?

Php 如何在一条语句中执行多个select查询?,php,mysql,select,pdo,Php,Mysql,Select,Pdo,我试图使用php在一个查询中执行mysql中的许多select语句 select * from clients; select * from users; select * from products; Mysql工作台只返回最后一条sql语句的记录。 我的PHP代码是 $query = "select * from table1;select * from table2;" $result = $pdo->prepare($query); $result->execute();

我试图使用php在一个查询中执行mysql中的许多select语句

select * from clients;
select * from users;
select * from products;
Mysql工作台只返回最后一条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 
是否可以一次执行多个select查询并像MSSQL那样获得所有结果


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

试试
mysqli::多用户查询

我用它来上传预生成的转储文件,所以它只是
CREATE TABLE
INSERT
语句,但是手册上说
SELECT
工作得很好


我是舒尔,PDO扩展也有同样的方法

请继续使用“变通方法”,这实际上是一种常规的做法。上面url中的方法似乎在用户输入上存在SQL注入问题。这是很好的进一步调查。也许,手动方法更适合此目的。但需要注意的是,如果查询是使用外部数据动态构建的,则multi_查询表示一个极端的安全漏洞。