日期:2014-05-17  浏览次数:20509 次

请教关于pdo的prepare用法
本帖最后由 rainxies 于 2013-03-08 16:13:15 编辑
菜鸟求教,
类似这种写法,即同时查询多个SQL,用prepare该怎么取结果集啊?

$dbh = new PDO($dbConnString, $dbInfo['username'], $dbInfo['password']);
$query = $dbh->query($queryString);
$i = 0;
foreach ($query as $query2) {
  $queryReturn[$i] = $query2;
  $i++;
}


------解决方案--------------------
本帖最后由 xuzuning 于 2013-03-11 09:05:47 编辑
如果你的sql指令就是#1的样子,那么对不起!
select FOUND_ROWS() 不会被发送到mysql去执行,因为他违反了一次只执行一条指令的安全约定

你可以将你的这两条指令写成存储过程
delimiter //
CREATE PROCEDURE `test`()
begin
  select SQL_CALC_FOUND_ROWS * from table limit 1,10;
  select FOUND_ROWS();
end;
// 
后这样执行
$queryString = 'call test();';
$query = $dbh->query($queryString);
do {
  $rows = $query->fetchAll();
  print_r($rows);
}while($query->nextRowset());