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 :

Modification d'une classe requêtant pour MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut Modification d'une classe requêtant pour MySQL
    Bien le bonjour nous comme en train de formé un site web avec un base mysql cependant nous avons un probleme a éffectué le moin de connexion innutile possible à la base de donnée. J'aimerais que quand je crée un connexion que si elle existe déja de simplement utilisé celle existante afin d'évité les connexioj inutile. Merci beaucoup à vous.

    voici notre code
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    <?php
     
    /*
      Auteur : Pier-Luc Théberge, Jonathan Nadeau
      Fichier : requester.class.php
      Date de création : 8 janvier 2008
      Date de modification : 2 mars 2008 par Jonathan
      Test: Teste le 2 mars 2008 par Jonathan Nadeau
    */
     
    class requester {
     
      //Informations de connexion à la base de données
      private static $db_username = '*********';
      private static $db_password = '*********';
      private static $db_host = 'localhost';
      private static $db_database = 'CIFQ';
      private static $db_handler = null;
      private static $nbInstances = 0;
     
      //Contient la table actuelle de l'instance
      protected static $db_table;
     
      public function __construct($_db, $_table = NULL) {
        // Établissement de la connexion si elle n'est pas déjà établie
        // par une autre instance
        if(self::$db_handler == null) {
          try {
          	self::$db_handler = mysql_connect(self::$db_host, self::$db_username, self::$db_password);
          	$this->setDatabase($_db);
          } catch (Exception $e) {
            throw new Exception($e->getMessage());  
          }
        }
     
        if($_table != NULL) {
          try   {
           $this->setTable($_table);
          } catch (Exception $e)  {
            throw new Exception($e->getMessage());
          }
        }
     
        self::$nbInstances++;
      }
     
      //Mofication gesiton d'erreur par jonathan le 2 mars 2008
      public function setTable($_table) {
        $request = 'SHOW TABLES FROM '.self::$db_database.' LIKE \''.$_table.'\'';
        if(mysql_num_rows(mysql_query($request)) == 0) {
          throw new Exception('La table ' .$_table. ' est inexistante dans la base de donnees '
                            .$this->db_database);
        }
        self::$db_table = $_table;
      }
     
      //Ajouter par Jonathan le 18 Janvier 2008
      public function setDatabase($_db) {
        self::$db_database = $_db;
        if(mysql_select_db(self::$db_database, self::$db_handler) == 0){
          throw new Exception('La base de donnee '.$_db.' est inexistante!');
        }
      }
     
      public function __destruct() {
        self::$nbInstances--;
        if(self::$nbInstances == 0) {
          mysql_close(self::$db_handler);
      	}
      }
     
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    j'ai pensé a une solution est-ce que l'utilisation de mysql_pconnect() serait approprié?

    Merci

Discussions similaires

  1. Utilisation d'une classe connexion pour MySQL
    Par nolookpass8 dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 02/04/2013, 17h42
  2. modifier une requête pour mysql 4.0.18
    Par lina01 dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/11/2006, 11h38
  3. EDBEngineError sur une requête pour MySQL
    Par Slyteck dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/08/2006, 14h17
  4. recherche une classe KZtransImg pour delphi 7
    Par plante20100 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/07/2005, 13h56
  5. Modification d'une base Access avec MySQL
    Par Wyatt dans le forum Administration
    Réponses: 2
    Dernier message: 07/01/2005, 19h20

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