developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 13 years ago

Closed 13 years ago

#74 closed enhancement (fixed)

Modification des connexion jDB pour level une exception en cas d'erreur

Reported by: yannick@… Owned by: laurentj
Priority: low Milestone: Jelix 1.0beta1
Component: jelix:db Version: 1.0alpha5
Severity: minor Keywords: db connection
Cc: Blocked By:
Blocking: Documentation needed:
Hosting Provider: Php version:

Description

Bon allors le seul changement dans le fichier jDbConnection.class.php, la méthode construct devient :

    function __construct($profil){
       $this->profil = & $profil;
       $this->dbms = $profil['driver'];
       $this->_connection=$this->_connect();
       if ($this->_connection === false)
       {
          throw new JException('jelix~db.error.connection', $profil['host'] . '(profil : ' . $profil['driver'] . ')');
       }
    }

Ensuite dans les constructeurs des drivers (exemple pour jDbConnection.postgresql.class.php), on doit rajouter un @ pour empécher un éventuel warning de la fonction de connexion :

    protected function _connect (){
        $funcconnect= ($this->profil['persistent'] ? 'pg_pconnect':'pg_connect');

        $str = 'dbname='.$this->profil['database'].' user='.$this->profil['user'].' password='.$this->profil['password'];

        // on fait une distinction car si host indiqué -> connection TCP/IP, sinon socket unix
        if($this->profil['host'] != '')
            $str = 'host='.$this->profil['host'].' '.$str;
        
        // Si le port est défini on le rajoute à la chaine de connexion
        if (isset($this->profil['port'])) {
            $str .= ' port='.$this->profil['port'];
        }
        
        return @$funcconnect ($str);
    }

Change History (2)

comment:1 Changed 13 years ago by laurentj

  • Milestone set to Jelix 1.0beta1
  • Owner set to laurentj
  • Status changed from new to assigned

note : cela corrige le ticket #72

comment:2 Changed 13 years ago by laurentj

  • Resolution set to fixed
  • Status changed from assigned to closed

ok, patch quasi appliqué. En fait, contrairement à ce que j'avais préconisé, l'exception est levée directement dans le driver. En effet, selon le profil, on peut vouloir afficher autre chose que le host dans l'erreur. Seul le fichier du driver est corrigé donc.

Note: See TracTickets for help on using tickets.