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 :

Ma requêtes préparées me retourne false [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut Ma requêtes préparées me retourne false
    salut
    j'ai un petit probleme avec les requete prepare et l'ancapsulation de pdo

    pdo::prepare me retourne false, j'ai du uoblié quelque chose mais je vois, je m'en remet donc a vous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    /***constructeur ****/
     if (isset ($config['DRIVEROPTION'])) {
                        $this->driverOption = $config['driverOption'];
                        $this->DAOobject = new PDO($this->getDns(), $this->login, $this->password, $this->driverOption);
                    } else {
                        $this->DAOobject = new PDO($this->getDns(), $this->login, $this->password);
     
                    }
     
                    if(! ($this->DAOobject instanceof PDO ) ){
                        print_r( PDO::errorInfo() );
                    }
     
     
    /***methode doQuery ***/
    public final function doQuery( $AliasQuery, array $tabParam = null) {
            $query = $this->getQuery( $AliasQuery );
            if ( is_null(($query)) ) {
                //throw new DAOException('Requete indefinie pour l\'alias '.$AliasQuery);
                trigger_error('Requete indefinie pour l\'alias '.$AliasQuery, E_USER_ERROR);
                return false;
            } else {
     
                $sth = $this->DAOobject->prepare( $query );
     
                echo var_dump( $this->DAOobject  );
                echo var_dump( $sth );
     
                /*if( !( $sth instanceof PDOStatement)){
                    echo PDOStatement::errorInfo();
                }*/
     
     
    /***utilsation ***/
     $config= array( 
                     'SERVEUR'       => 'linux027',
                    'USER'          => 'framework',
                    'PASS'          => 'fsreacmueewdoirtko',
                    'BASE'          => 'framework',
                    //'BASE'          => 'framework_test',
                    'TYPE'          => 'mysql',
                    'REQUETE'       => 'basemetiers',
                    'DEBUG'         => 0,
                    'TYPERESULT'    => 'ASSOC'
                    );
     
    $pdo = new DAO( $config );
    $pdo->setAttribute( 'ERRMODE_WARNING' );
    $pdo->doQuery('hello');
    /** la requete SELECT * FROM E_ACTIONFILTER ***/
    voici ce me donne les echo
    object(PDO)#22 (0) { }
    bool(false)

    et ce bout de code me reourne une page blanche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if( !( $sth instanceof PDOStatement)){
                    echo PDOStatement::errorInfo();
                }


    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    pas d'idée
    c'est bien dommage

  3. #3
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Tu as essayer avec is_subclass_of, ça colle un peu moins à ce que tu voulais faire avec instanceof.
    Mais la denière fois que j'ai eu à utilise instanceof sa ne fonctionner pas correctement et cette fonction m'a sauvé la mise.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    j'ai pas essayé is_subclass_off car ma class ne derive pas de PDO, j'avais essayé pendant un temps de la faire derivé en appellant le constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class connect extends PDO
    {
    private $PDOobject;
     
    public function __construct( $config )
    {
    $this->PDOobject = parent::__contruct(...);
    }
    }
    mais $this->PDOobject était null

    j'ai donc enlevé l'héritage et utilisé l'operateur new

    instanceof semble fonctionné

    ce qui m'embete c'est que je n'arrive pas à recupere l'objet PDOStatement
    et les methodes
    PDO::errorInfo() merde

    et j'en ai besoin car le framework utilise les triggers

  5. #5
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Ok ok j'avais lu de travers....

    Mais je viens de voir un truc en me replongeant dans la doc de PDO, c'est que errorInfo n'est pas une méthode static.

    Au lieu de faire un isnot instanceof PDOStatement, je testerais sur la valeur false.

    Concernant le code d'erreur c'est selon la condition enoncé précedemment. En effet si prepare renvoie false, il faut que tu interroges l'objet PDO, sinon il faut interroger l'objet PDOStatement.

    cf :
    Pour l'objet PDOStatement :
    http://php.benscom.com/manual/fr/fun...-errorinfo.php
    Pour l'objet PDO :
    http://php.benscom.com/manual/fr/fun...do-prepare.php
    http://php.benscom.com/manual/fr/fun...-errorcode.php

    bbye

  6. #6
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    ce qui m'embete c'est que je n'arrive pas à recupere l'objet PDOStatement
    et les methodes
    Cela est surement du à un problème de requete. voir la méthode getquery.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/09/2010, 12h34
  2. [PDO] Problème de requête préparée (à n'y rien comprendre?)
    Par waldo2188 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/03/2007, 21h53
  3. [MySQL] Requête qui ne retourne rien
    Par baleiney dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/06/2006, 18h29
  4. [php 5.1.2][bug?]get_cfg_var retourne false
    Par jeff_! dans le forum Langage
    Réponses: 2
    Dernier message: 22/05/2006, 13h33
  5. [MySQL] Requête qui ne retourne qu'un enregistrement
    Par krfa1 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 04/04/2006, 06h55

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