1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `root`.`proc` $$
  4. CREATE [email="DEFINER=`root`@`localhost"]DEFINER=`root`@`localhost[/email]` PROCEDURE `proc`()
  5. BEGIN SET NAMES utf8;
  6.  
  7. SELECT miasto FROM adresy; SELECT concat(miasto,' ',miasto) AS miasta FROM adresy; END $$
  8.  
  9. DELIMITER ;

Powyzej procedura skladowana, wywolujac ktora otrzymujemy dwa rowsety (z dwoch selectow). Obydwie tabele mam wypelnione danymi - pod 'MySQL Query Browser' wyswietla prawidlowo dane z obydwu tabel.

  1. <?
  2.  header('Content-Type: text/html; charset=utf-8');
  3.  
  4.  $conn=new PDO('mysql:host=localhost;dbname=root','root','root');
  5.  $q=$conn->query('CALL proc()');
  6.  
  7.  $r=$q->fetchAll(PDO::FETCH_ASSOC);
  8.  print_r($r);
  9.  print('<br/><br/>');
  10.  
  11.  $q->nextRowset();
  12.  $r=$q->fetchAll(PDO::FETCH_ASSOC);
  13.  print_r($r);
  14. ?>


Kod
Array ( [0] => Array ( [miasto] => poznań ) [1] => Array ( [miasto] => warszawa ) )

Array ( )


Wyswietla jedynie dane pochodzace z pierwszego rowseta. Jak dostac sie do drugiego?