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

时间:2014-06-03 18:52:27

标签: 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并动态构建响应。

1 个答案:

答案 0 :(得分:0)

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

我使用它来上传pre-generetad转储文件,因此它只是CREATE TABLEINSERT语句,但是SELECT的工作原理正常两种。

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