【发布时间】:2014-07-24 05:42:05
【问题描述】:
我正在尝试使用 php 在单个查询中在 mysql 中执行许多选择语句。
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 并动态构建响应。
【问题讨论】:
-
坚持你的“解决方法”,这实际上是常规的做事方式
-
上述url中的方法似乎对用户输入有SQL注入问题。这很适合进一步调查。也许,手动方法更适合此目的