Skip to content
Snippets Groups Projects
Commit 01ea1838 authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

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

parent 6071ad52
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
......@@ -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
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment