Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2007, 03h01   #1
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Par défaut MySQL et PDOStatement::nextRowset( )

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 :
1
2
3
4
5
CREATE PROCEDURE AGRUMES( )
BEGIN
    SELECT 'Orange' ;
    SELECT 'Pamplemousse' ;
END ;
Le PHP :

Code :
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 :
1
2
3
4
5
6
Array
(
    [Orange] => Orange
    [0] => Orange
)
------------
Alors que j'attendrais plutôt :

Code :
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 :
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
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 23h52   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Pour info :
PHP 5.2.4-dev (celui d'il y a deux jours, et le PDO qui allait avec)
MySQL 5.1.17-beta-community-nt-debug
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h25.


 
 
 
 
Partenaires

Hébergement Web