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

Langage PHP Discussion :

Importer un tableau dans une classe


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut Importer un tableau dans une classe
    Bonjour,

    Je suis en train de faire une classe pour gérer mes bases avec PDO, tout simplement parce que je n'ai pas envie d'écrire des pavés chaque fois que je veux me connecter, effectuer une requête et déconnecter.

    Les données des bases (host, port, user, pass, base) sont mis dans un tableau extérieur à la classe.

    Comment puis-je importer ce tableau dans la classe pour avoir par exemple ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $database = array ( 'host' => 'localhost' , ... etc ) ;
     
    class Connexion extends PDO
    {
     private $database ;
     
     private $host = $database [ 'host' ] ;
     .
     .
     .
     etc
    }
    Merci.

  2. #2
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    Fais ça dans le constructeur (qui est fait pour ce genre de chose)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Connexion extends PDO
    {
      private $host;
      private $port;
      private $...;
      public function __construct(array $database)
      {
        $this->host = $database['host'];
        $this->port = ...;
        $dsn = ...;
        parent::__construct($dsn); 
      }
      // ..
    }

  3. #3
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Merci beaucoup !

    Je vais tester ça demain !

  4. #4
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Merci Metagoto, ça fonctionne bien.

    J'ai en revanche un autre problème dans la classe.

    Je prépare les requêtes, lors d'un appel d'une seule requête cela fonctionne bien, mais si j'appel plusieurs requêtes en même temps (qui sont dans un tableau), alors le résultat m'affiche seulement la première requête du tableau.

    Du code valant mieux qu'un discours, voici ci-dessous :

    Code dans la classe :
    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
     public function query ( $query )
     {
      try
      {
       if ( is_array ( $query ) == TRUE )
       {
        $this -> dsn = parent :: beginTransaction ( ) ;
        foreach ( $query as $key => $value )
        {
         $req = parent :: prepare ( $value ) ;
         $req -> execute ( ) ;
         $this -> dsn = parent :: commit ( ) ;
         return $req ;
         $req -> closeCursor ( ) ;
        }
       } else {
        $this -> dsn = parent :: beginTransaction ( ) ;
        $req = parent :: prepare ( $query ) ;
        $req -> execute ( ) ;
        $this -> dsn = parent :: commit ( ) ;
        return $req ;
        $req -> closeCursor ( ) ;
       }
      }
     
      catch ( PDOException $e )
      {
       $this -> dsn = parent :: rollBack ( ) ;
       echo 'Code : ' . $e -> getCode ( ) . '<br />' ;
       echo 'Message : ' . $e -> getMessage ( ) . '<br />' ;
       die ( ) ;
      }
     }
    Code pour appel des requêtes :
    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
    $array = array ( ) ;
    $array [ ] = "SELECT id_u FROM id_user" ;
    $array [ ] = "SELECT level FROM id_user" ;
    $array [ ] = "SELECT username FROM id_user" ;
    $req_3 = $dsn -> query ( $array ) ;
    $res_3 = $req_3 -> setFetchMode ( PDO :: FETCH_ASSOC ) ;
     
    while ( $data = $req_3 -> fetch ( ) )
    {
     $array_3 [ ] = $data ;
    }
     
    echo '<pre>' ;
    print_r ( $array_3 ) ;
    echo '</pre>' ;
    Aurais-tu une idée pour accepter la préparation de requête multiple ?

    Merci.

Discussions similaires

  1. Importation de méthodes dans une classe
    Par jarboo dans le forum C#
    Réponses: 1
    Dernier message: 25/07/2007, 12h21
  2. [Tableaux] Déclaration d'un tableau dans une classe
    Par rochenico dans le forum Langage
    Réponses: 4
    Dernier message: 22/12/2006, 11h29
  3. Comment définir un tableau dans une classe?
    Par Pragmateek dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 30/04/2006, 20h34
  4. tableau dans une classe
    Par blastmanu dans le forum C++
    Réponses: 6
    Dernier message: 18/04/2006, 14h18
  5. [POO] import d'objet dans une classe
    Par wdionysos dans le forum Langage
    Réponses: 3
    Dernier message: 01/04/2006, 21h05

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