Fix: Remontée du motif erreur connection par les gestionnaires

This commit is contained in:
Laurent Destailleur 2005-07-09 23:41:49 +00:00
parent 6071ad5264
commit 01ea1838de
2 changed files with 21 additions and 15 deletions

View File

@ -46,9 +46,11 @@ class DoliDb
var $connected; // 1 si connecté, 0 sinon var $connected; // 1 si connecté, 0 sinon
var $database_selected; // 1 si base sélectionné, 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 $transaction_opened; // 1 si une transaction est en cours, 0 sinon
var $ok; var $ok;
var $error;
// Constantes pour conversion code erreur MySql en code erreur générique // Constantes pour conversion code erreur MySql en code erreur générique
var $errorcode_map = array( var $errorcode_map = array(
@ -76,14 +78,14 @@ class DoliDb
\brief Ouverture d'une connection vers le serveur et éventuellement une database. \brief Ouverture d'une connection vers le serveur et éventuellement une database.
\param type type de base de données (mysql ou pgsql) \param type type de base de données (mysql ou pgsql)
\param host addresse de la base de données \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 pass mot de passe
\param name nom de la database \param name nom de la database
\return int 1 en cas de succès, 0 sinon \return int 1 en cas de succès, 0 sinon
*/ */
function DoliDb($type='mysql', $host, $user, $pass, $name='', $newlink=0) function DoliDb($type='mysql', $host, $user, $pass, $name='', $newlink=0)
{ {
global $conf; global $conf,$langs;
$this->transaction_opened=0; $this->transaction_opened=0;
//print "Name DB: $host,$user,$pass,$name<br>"; //print "Name DB: $host,$user,$pass,$name<br>";
@ -91,6 +93,7 @@ class DoliDb
{ {
$this->connected = 0; $this->connected = 0;
$this->ok = 0; $this->ok = 0;
$this->error=$langs->trans("ErrorWrongHostParameter");
dolibarr_syslog("DoliDB::DoliDB : Erreur Connect, wrong host parameters"); dolibarr_syslog("DoliDB::DoliDB : Erreur Connect, wrong host parameters");
return $this->ok; return $this->ok;
} }
@ -105,6 +108,7 @@ class DoliDb
} }
else else
{ {
// host, login ou password incorrect
$this->connected = 0; $this->connected = 0;
$this->ok = 0; $this->ok = 0;
dolibarr_syslog("DoliDB::DoliDB : Erreur Connect"); dolibarr_syslog("DoliDB::DoliDB : Erreur Connect");
@ -116,12 +120,14 @@ class DoliDb
if ($this->select_db($name) == 1) if ($this->select_db($name) == 1)
{ {
$this->database_selected = 1; $this->database_selected = 1;
$this->database_name = $name;
$this->ok = 1; $this->ok = 1;
} }
else else
{ {
$this->database_selected = 0; $this->database_selected = 0;
$this->ok = 0; $this->ok = 0;
$this->error=$this->error();
dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db"); dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db");
} }
} }
@ -139,7 +145,6 @@ class DoliDb
\param database nom de la database \param database nom de la database
\return resource \return resource
*/ */
function select_db($database) function select_db($database)
{ {
return mysql_select_db($database, $this->db); 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) \param name nom de la database (ne sert pas sous mysql, sert sous pgsql)
\return resource handler d'accès à la base \return resource handler d'accès à la base
*/ */
function connect($host, $login, $passwd, $name) function connect($host, $login, $passwd, $name)
{ {
$this->db = @mysql_connect($host, $login, $passwd); $this->db = @mysql_connect($host, $login, $passwd);
@ -167,7 +171,6 @@ class DoliDb
\return resource resource définie si ok, null si ko \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 \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated
*/ */
function create_db($database) function create_db($database)
{ {
$ret=$this->query('CREATE DATABASE '.$database); $ret=$this->query('CREATE DATABASE '.$database);

View File

@ -26,7 +26,7 @@
/** /**
\file htdocs/lib/pgsql.lib.php \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 Fabien Seisen
\author Rodolphe Quiedeville. \author Rodolphe Quiedeville.
\author Laurent Destailleur. \author Laurent Destailleur.
@ -49,9 +49,11 @@ class DoliDb
var $connected; // 1 si connecté, 0 sinon var $connected; // 1 si connecté, 0 sinon
var $database_selected; // 1 si base sélectionné, 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 $transaction_opened; // 1 si une transaction est en cours, 0 sinon
var $ok; var $ok;
var $error;
/** /**
@ -65,7 +67,7 @@ class DoliDb
*/ */
function DoliDb($type='pgsql', $host, $user, $pass, $name='') function DoliDb($type='pgsql', $host, $user, $pass, $name='')
{ {
global $conf; global $conf,$langs;
$this->transaction_opened=0; $this->transaction_opened=0;
//print "Name DB: $host,$user,$pass,$name<br>"; //print "Name DB: $host,$user,$pass,$name<br>";
@ -73,6 +75,7 @@ class DoliDb
{ {
$this->connected = 0; $this->connected = 0;
$this->ok = 0; $this->ok = 0;
$this->error=$langs->trans("ErrorWrongHostParameter");
dolibarr_syslog("DoliDB::DoliDB : Erreur Connect, wrong host parameters"); dolibarr_syslog("DoliDB::DoliDB : Erreur Connect, wrong host parameters");
return $this->ok; return $this->ok;
} }
@ -87,6 +90,7 @@ class DoliDb
} }
else else
{ {
// host, login ou password incorrect
$this->connected = 0; $this->connected = 0;
$this->ok = 0; $this->ok = 0;
dolibarr_syslog("DoliDB::DoliDB : Erreur Connect"); dolibarr_syslog("DoliDB::DoliDB : Erreur Connect");
@ -98,12 +102,14 @@ class DoliDb
if ($this->select_db($name) == 1) if ($this->select_db($name) == 1)
{ {
$this->database_selected = 1; $this->database_selected = 1;
$this->database_name = $name;
$this->ok = 1; $this->ok = 1;
} }
else else
{ {
$this->database_selected = 0; $this->database_selected = 0;
$this->ok = 0; $this->ok = 0;
$this->error=$this->error();
dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db"); dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db");
} }
} }
@ -124,10 +130,9 @@ class DoliDb
\remarks comparaison manuel si la database est bien celle choisie par l'utilisateur \remarks comparaison manuel si la database est bien celle choisie par l'utilisateur
\remarks en cas de succes renverra 1 ou 0 \remarks en cas de succes renverra 1 ou 0
*/ */
function select_db($database) function select_db($database)
{ {
if($database == "dolibarr") if ($database == $this->database_name)
return 1; return 1;
else 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) \param name nom de la database (ne sert pas sous mysql, sert sous pgsql)
\return resource handler d'accès à la base \return resource handler d'accès à la base
*/ */
function connect($host, $login, $passwd, $name) function connect($host, $login, $passwd, $name)
{ {
$con_string = "host=$host dbname=$name user=$login password=$passwd "; $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 \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 \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated
*/ */
function create_db($database) function create_db($database)
{ {
$ret=$this->query('CREATE DATABASE '.$database.';'); $ret=$this->query('CREATE DATABASE '.$database.';');