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 :

extension de PDO [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut extension de PDO
    Bonjour à tous,
    JE suis entrain d'étendre PDO pour mes besoins perso.
    Je rencontre cependant un souci avec "execute", j'ai étendu les requêtes préparer et bien sur il faut que execute sois aussi de la partie.
    Dans la class etendue

    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
     
    public function Prepare($sql){
     
    		return $this->PDOInstance->prepare($sql);
     
    	}
    	/**
    	 * execute request
    	 *
    	 * @param array $tabs
    	 * @return bool
    	 */
    	public function exc($tabs=false){
    		return $this->PDOInstance->execute($tabs);
    	}
    	/**
    	 * function fetchAll All set result
    	 *
    	 * @param sql $prepare
    	 * @return array();
    	 */
    	public function FetchAll($prepare){
     
    		return $this->PDOInstance->fetchAll($prepare);
     
    	}
    Dans la class qui affiche la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function testDb(){
    		$sql = 'SELECT * FROM wizard';
    		$ini = new DataOjects();
    	    $prepare = $ini->getInstance()->Prepare($sql);
    	    $test = $ini->getInstance()->exc(false);
    	    //$result = $ini->getInstance()->FetchAll($prepare);
    		var_dump($test);
    	}
    L'erreur :
    Fatal error: Call to undefined method PDO::execute() in C:\wamp\www\wizard\lib\*****\******\class.DataOjects.php on line 237

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour,

    C'est l'objet retourné par PREPARE qui contient la méthode EXECUTE.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    oui mais comment modifier pour justement avoir la methode execute dans prépare sachant que je souhaite pouvoir la configurer au besoin.
    j'ai fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function Prepare($sql,$array=false){
     
    		$prepare = $this->PDOInstance->prepare($sql);
    		$prepare->execute($array=false);
    		return $prepare;
     
    	}
    J'ai pas tester mais est ce la bonne voie ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    je viens de tester ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function Prepare($sql,$array = false){
     
    		$prepare = $this->PDOInstance->prepare($sql);
    		$array    = $array ? array() : '';
    		$prepare->execute($array);
    		return $prepare;
     
    	}
    Mais cela ne fonctionne pas j'ai cette erreur :
    Warning: PDOStatement::execute() expects parameter 1 to be array, string given in C:\wamp\www\wizard\lib\******\******\class.DataOjects.php on line 229
    object(PDOStatement)#6 (1) { ["queryString"]=> string(20) "SELECT * FROM wizard" }
    J'ai utiliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function testDb(){
    		$sql = 'SELECT * FROM wizard';
    		$ini = new DataOjects();
    	    $prepare = $ini->getInstance()->Prepare($sql,false);
    		var_dump($prepare);
    	}

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Bon j'ai modifier :
    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
    public function Prepare($sql){
     
    		return $this->PDOInstance->prepare($sql);
    	}
     
    	public function FetchAll($sql,$array=false){
     
    		$prepare = self::Prepare($sql);
    		$result = $prepare->setFetchMode(PDO::FETCH_ASSOC);
    		$result .= $array ? $prepare->execute($array=array()) : $prepare->execute();
    	    $result .= $prepare->fetchAll();
    	    $result .= $prepare->closeCursor();
    		$result .= $prepare->null;
    		return $result;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function testDb(){
    		$ini = new DataOjects();
    		$sql = 'SELECT * FROM test';
    	    //$prepare = $ini->getInstance()->Prepare($sql);
    	    $result =$ini->getInstance()->FetchAll($sql,false);
    		print_r($result);
    		return $result;
    	}
    Il me retourne un tableau vide :
    11Array1

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    j'ai trouver,
    je suis vraiment trop distrait forcement si mes objets sont appelé comme un bourrin sa fonctionne pas

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/08/2011, 12h01
  2. [PDO] upgrade extension de pdo avec php 5.3
    Par gtraxx dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/12/2010, 23h37
  3. [PDO] Insert via l'extension PDO
    Par shensi dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/12/2010, 06h40
  4. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  5. [PDO] Extension PDO/Problème execute
    Par dinguedemoi dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/07/2009, 09h19

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