Hello,
Certains parmi vous ont-ils déjà réussi à utiliser la méthode nextRowset( ) sous PDO avec une BdD MySQL ? Perso je me casse la tête dessus depuis hier...

La procédure stockée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE PROCEDURE AGRUMES( )
BEGIN
    SELECT 'Orange' ;
    SELECT 'Pamplemousse' ;
END ;
Le PHP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
header('Content-Type: text/plain') ;
 
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test_db', 'root', '') ;
$statement = $pdo->query('CALL AGRUMES( )') ;
 
do {
    foreach ( $statement as $element ) {
        print_r($element) ;
    }
    echo "------------\r\n" ;
} while ( $statement->nextRowset( ) ) ;
Donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Array
(
    [Orange] => Orange
    [0] => Orange
)
------------
Alors que j'attendrais plutôt :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Array
(
    [Orange] => Orange
    [0] => Orange
)
------------
Array
(
    [Pamplemousse] => Pamplemousse
    [0] => Pamplemousse
)
------------
Par contre pas de souci quand je passe par MySQLi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
$link = mysqli_connect('127.0.0.1', 'root', '', 'test_db') ;
mysqli_multi_query($link, 'CALL AGRUMES( )') ;
do {
    if ( $result = mysqli_use_result($link) ) {
        while ( $row = mysqli_fetch_assoc($result) ) {
            print_r($row);
        }
        echo "------------\r\n" ;
    }
} while ( mysqli_next_result($link) ) ;
Une idée ? Merci