IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Utilisation des procédures stockées PHP/MySQL


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Utilisation des procédures stockées PHP/MySQL
    Bonjour,

    Je viens de faire une procédure stockée sous MySQL qui fonctionne très bien dans mon query browser mais quand je l'exécute à partir de PHP, il me renvoi un tableau d'enregistrement avec caractères quelques peu bizarre ...

    1ere méthode avec PDO, qui est buggée, donc normal que ca ne fonctionne pas à priori :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $dbh = new PDO('mysql:host=localhost;dbname='.$database, $username, $password); 
    $maproc = "CALL ps_chercher(ma, liste, de, param)"; 
    $appelSP = $dbh->prepare($maproc); 
    $appelSP->execute(); 
    while($row = $appelSP->fetchAll(PDO::FETCH_ASSOC))    print_r($row); 
    ?>
    2eme méthode avec mysqli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
        $link = mysqli_connect("localhost", $username, $password, $database);
        $query = "CALL ps_chercher(ma, liste, de, param);";
        $stmt = mysqli_prepare($link, $query);
        mysqli_stmt_execute($stmt);
        mysqli_stmt_bind_result($stmt, $1, $2, $3, $4, $5);
        while (mysqli_stmt_fetch($stmt)) {
            printf ("%s - %s - %s - %s - %s<br>", $1, $2, $3, $4, $5);
        }
        mysqli_stmt_close($stmt);
        mysqli_close($link);
    ?>
    La procédure s'exécute correctement et affiche bien le tableau mais avec des choses comme celles-ci : �
    les données sont décalées par rapport aux clés du tableau, je peux par exemple avoir dans la clé 1 le début d'un ID et dans la clé 2 la fin du même ID ...

    Je pense que cela pourrait venir d'un problème d'encodage des caractères du tableau ou du tableau lui même, mais impossible de trouver quoi que ce soit pour définir le type d'encodage directement dans la proc stock ou dans le PHP.

    Si quelqu'un à une piste ou carrément pourquoi pas une solution, je suis preneur

    Merci d'avance

  2. #2
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Re,

    Bon j'ai essayé d'afficher seulement un ID dans mon SELECT.
    Il me retourne le bon nombre de lignes, par contre le premier ID est vide (^^) et les autres sont faux, c'est meme n'importe quoi : 959920438 au lieu de 869791 !!!

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    L'erreur vient du fait que ds ma procedure je stock ma requete ds une chaine de caractères avec un CONCAT :

    SET @SQLString = CONCAT('SELECT * FROM ma table WHERE id=',monid);

    Il ya un probleme avec PHP pour exécuter ca.
    Quelqu'un connaitrait-il un moyen de contourner ce CONCAT ?

Discussions similaires

  1. Implémentation d'une DAL utilisant des procédures stockées avec SQL Server
    Par youness78 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 30/10/2013, 09h32
  2. [MySQL] Utilisation des class en PHP/MySQL
    Par mymemorial dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/03/2013, 01h02
  3. [MySQL] Utiliser les procédures stockées MySQL et étendre MySQLi dans PHP
    Par RideKick dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 12/09/2009, 13h14
  4. Réponses: 0
    Dernier message: 15/01/2009, 16h09
  5. [CR][VB6] Utilisation des procédures stockées
    Par couledoux dans le forum SDK
    Réponses: 3
    Dernier message: 10/03/2005, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo