From 01ea1838de38bb1f823ca5e3998584a7b14026f4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Sat, 9 Jul 2005 23:41:49 +0000 Subject: [PATCH] =?UTF-8?q?Fix:=20Remont=E9e=20du=20motif=20erreur=20conne?= =?UTF-8?q?ction=20par=20les=20gestionnaires?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/lib/mysql.lib.php | 15 +++++++++------ htdocs/lib/pgsql.lib.php | 21 ++++++++++++--------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/htdocs/lib/mysql.lib.php b/htdocs/lib/mysql.lib.php index f42e7c5dfb9..03e8bac48ad 100644 --- a/htdocs/lib/mysql.lib.php +++ b/htdocs/lib/mysql.lib.php @@ -46,10 +46,12 @@ class DoliDb var $connected; // 1 si connect�, 0 sinon var $database_selected; // 1 si base s�lectionn�, 0 sinon + var $database_name; // Nom base s�lectionn�e var $transaction_opened; // 1 si une transaction est en cours, 0 sinon var $ok; - + var $error; + // Constantes pour conversion code erreur MySql en code erreur g�n�rique var $errorcode_map = array( 1004 => 'DB_ERROR_CANNOT_CREATE', @@ -76,14 +78,14 @@ class DoliDb \brief Ouverture d'une connection vers le serveur et �ventuellement une database. \param type type de base de donn�es (mysql ou pgsql) \param host addresse de la base de donn�es - \param user nom de l'utilisateur autoris + \param user nom de l'utilisateur autoris� \param pass mot de passe \param name nom de la database \return int 1 en cas de succ�s, 0 sinon */ function DoliDb($type='mysql', $host, $user, $pass, $name='', $newlink=0) { - global $conf; + global $conf,$langs; $this->transaction_opened=0; //print "Name DB: $host,$user,$pass,$name<br>"; @@ -91,6 +93,7 @@ class DoliDb { $this->connected = 0; $this->ok = 0; + $this->error=$langs->trans("ErrorWrongHostParameter"); dolibarr_syslog("DoliDB::DoliDB : Erreur Connect, wrong host parameters"); return $this->ok; } @@ -105,6 +108,7 @@ class DoliDb } else { + // host, login ou password incorrect $this->connected = 0; $this->ok = 0; dolibarr_syslog("DoliDB::DoliDB : Erreur Connect"); @@ -116,12 +120,14 @@ class DoliDb if ($this->select_db($name) == 1) { $this->database_selected = 1; + $this->database_name = $name; $this->ok = 1; } else { $this->database_selected = 0; $this->ok = 0; + $this->error=$this->error(); dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db"); } } @@ -139,7 +145,6 @@ class DoliDb \param database nom de la database \return resource */ - function select_db($database) { return mysql_select_db($database, $this->db); @@ -153,7 +158,6 @@ class DoliDb \param name nom de la database (ne sert pas sous mysql, sert sous pgsql) \return resource handler d'acc�s � la base */ - function connect($host, $login, $passwd, $name) { $this->db = @mysql_connect($host, $login, $passwd); @@ -167,7 +171,6 @@ class DoliDb \return resource resource d�finie si ok, null si ko \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated */ - function create_db($database) { $ret=$this->query('CREATE DATABASE '.$database); diff --git a/htdocs/lib/pgsql.lib.php b/htdocs/lib/pgsql.lib.php index c04eb43da4d..bc240ea9bb2 100644 --- a/htdocs/lib/pgsql.lib.php +++ b/htdocs/lib/pgsql.lib.php @@ -26,7 +26,7 @@ /** \file htdocs/lib/pgsql.lib.php - \brief Fichier de la classe permettant de g�r�r la database de dolibarr. + \brief Fichier de la classe permettant de g�r�r une base pgsql \author Fabien Seisen \author Rodolphe Quiedeville. \author Laurent Destailleur. @@ -49,9 +49,11 @@ class DoliDb var $connected; // 1 si connect�, 0 sinon var $database_selected; // 1 si base s�lectionn�, 0 sinon + var $database_name; // Nom base s�lectionn�e var $transaction_opened; // 1 si une transaction est en cours, 0 sinon var $ok; + var $error; /** @@ -65,7 +67,7 @@ class DoliDb */ function DoliDb($type='pgsql', $host, $user, $pass, $name='') { - global $conf; + global $conf,$langs; $this->transaction_opened=0; //print "Name DB: $host,$user,$pass,$name<br>"; @@ -73,6 +75,7 @@ class DoliDb { $this->connected = 0; $this->ok = 0; + $this->error=$langs->trans("ErrorWrongHostParameter"); dolibarr_syslog("DoliDB::DoliDB : Erreur Connect, wrong host parameters"); return $this->ok; } @@ -87,6 +90,7 @@ class DoliDb } else { + // host, login ou password incorrect $this->connected = 0; $this->ok = 0; dolibarr_syslog("DoliDB::DoliDB : Erreur Connect"); @@ -98,12 +102,14 @@ class DoliDb if ($this->select_db($name) == 1) { $this->database_selected = 1; + $this->database_name = $name; $this->ok = 1; } else { $this->database_selected = 0; $this->ok = 0; + $this->error=$this->error(); dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db"); } } @@ -124,13 +130,12 @@ class DoliDb \remarks comparaison manuel si la database est bien celle choisie par l'utilisateur \remarks en cas de succes renverra 1 ou 0 */ - function select_db($database) { - if($database == "dolibarr") - return 1; + if ($database == $this->database_name) + return 1; else - return 0; + return 0; } /** @@ -141,7 +146,6 @@ class DoliDb \param name nom de la database (ne sert pas sous mysql, sert sous pgsql) \return resource handler d'acc�s � la base */ - function connect($host, $login, $passwd, $name) { $con_string = "host=$host dbname=$name user=$login password=$passwd "; @@ -155,7 +159,6 @@ class DoliDb \return resource resource d�finie si ok, null si ko \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated */ - function create_db($database) { $ret=$this->query('CREATE DATABASE '.$database.';'); @@ -503,7 +506,7 @@ class DoliDb /** \brief R�cup�re l'id gen�r� par le dernier INSERT. - \param tab Nom de la table concern�e par l'insert. Ne sert pas sous MySql mais requis pour compatibilit� avec Postgresql + \param tab Nom de la table concern�e par l'insert. Ne sert pas sous MySql mais requis pour compatibilit� avec Postgresql \return int id */ -- GitLab