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 :
Le PHP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE PROCEDURE AGRUMES( ) BEGIN SELECT 'Orange' ; SELECT 'Pamplemousse' ; END ;
Donne :
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( ) ) ;
Alors que j'attendrais plutôt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Array ( [Orange] => Orange [0] => Orange ) ------------
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
11
12 Array ( [Orange] => Orange [0] => Orange ) ------------ Array ( [Pamplemousse] => Pamplemousse [0] => Pamplemousse ) ------------
Une idée ? Merci
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) ) ;
Partager