diff --git a/htdocs/install/etape1.php b/htdocs/install/etape1.php
index f4f4deaccc7..1c3dad040e5 100644
--- a/htdocs/install/etape1.php
+++ b/htdocs/install/etape1.php
@@ -280,7 +280,7 @@ if ($_POST["action"] == "set")
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '';
- print "
La création de la base Dolibarr ('.$dolibarr_main_db_name.') a échoué.';
diff --git a/htdocs/lib/mysql.lib.php b/htdocs/lib/mysql.lib.php
index 3abd249779f..5e57c0a2946 100644
--- a/htdocs/lib/mysql.lib.php
+++ b/htdocs/lib/mysql.lib.php
@@ -22,7 +22,7 @@
*
*/
-/**
+/**
\file htdocs/lib/mysql.lib.php
\brief Fichier de la classe permettant de gérer une base mysql
\author Fabien Seisen
@@ -39,481 +39,477 @@
class DoliDb
{
- var $db; // Handler de base
- var $type='mysql'; // Nom du gestionnaire
-
- var $results; // Resultset de la dernière requete
-
- var $connected; // 1 si connecté, 0 sinon
- var $database_selected; // 1 si base sélectionné, 0 sinon
- var $transaction_opened; // 1 si une transaction est en cours, 0 sinon
-
- var $ok;
-
- // Constantes pour conversion code erreur MySql en code erreur générique
- var $errorcode_map = array(
- 1004 => 'DB_ERROR_CANNOT_CREATE',
- 1005 => 'DB_ERROR_CANNOT_CREATE',
- 1006 => 'DB_ERROR_CANNOT_CREATE',
- 1007 => 'DB_ERROR_ALREADY_EXISTS',
- 1008 => 'DB_ERROR_CANNOT_DROP',
- 1046 => 'DB_ERROR_NODBSELECTED',
- 1050 => 'DB_ERROR_TABLE_ALREADY_EXISTS',
- 1051 => 'DB_ERROR_NOSUCHTABLE',
- 1054 => 'DB_ERROR_NOSUCHFIELD',
- 1062 => 'DB_ERROR_RECORD_ALREADY_EXISTS',
- 1064 => 'DB_ERROR_SYNTAX',
- 1100 => 'DB_ERROR_NOT_LOCKED',
- 1136 => 'DB_ERROR_VALUE_COUNT_ON_ROW',
- 1146 => 'DB_ERROR_NOSUCHTABLE',
- 1048 => 'DB_ERROR_CONSTRAINT',
- 1217 => 'DB_ERROR_CHILD_EXISTS'
- );
-
- /**
- \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 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;
- $this->transaction_opened=0;
-
- // Essai connexion serveur
- $this->db = $this->connect($host, $user, $pass, $newlink);
-
- if ($this->db)
- {
- $this->connected = 1;
- $this->ok = 1;
- }
- else
- {
- $this->connected = 0;
- $this->ok = 0;
- dolibarr_syslog("DoliDB::DoliDB : Erreur Connect");
- }
-
- // Si connexion serveur ok et si connexion base demandée, on essaie connexion base
- if ($this->connected && $name)
- {
- if ($this->select_db($name) == 1)
- {
- $this->database_selected = 1;
- $this->ok = 1;
- }
- else
- {
- $this->database_selected = 0;
- $this->ok = 0;
- dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db");
- }
- }
- else
- {
- // Pas de selection de base demandée, ok ou ko
- $this->database_selected = 0;
- }
-
- return $this->ok;
- }
-
- /**
- \brief Selectionne une database.
- \param database nom de la database
- \return resource
- */
-
- function select_db($database)
- {
- return mysql_select_db($database, $this->db);
- }
-
- /**
- \brief Connection vers le serveur
- \param host addresse de la base de données
- \param login nom de l'utilisateur autoris
- \param passwd mot de passe
- \return resource handler d'accès à la base
- */
-
- function connect($host, $login, $passwd, $newlink=0)
- {
- $this->db = @mysql_connect($host, $login, $passwd, $newlink);
- //print "Resultat fonction connect: ".$this->db;
- return $this->db;
- }
-
- /**
- \brief Connexion sur une base de donnée
- \param database nom de la database
- \return result resultat 1 pour ok, 0 pour non ok
- */
-
- function create_db($database)
- {
- if (mysql_create_db ($database, $this->db))
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
-
- /**
- \brief Copie d'un handler de database.
- \return resource
- */
-
- function dbclone()
- {
- $db2 = new DoliDb("", "", "", "", "");
- $db2->db = $this->db;
- return $db2;
- }
-
- /**
- \brief Ouverture d'une connection vers une database.
- \param host Adresse de la base de données
- \param login Nom de l'utilisateur autorisé
- \param passwd Mot de passe
- \return resource handler d'accès à la base
- */
-
- function pconnect($host, $login, $passwd)
- {
- $this->db = mysql_pconnect($host, $login, $passwd);
- return $this->db;
- }
-
- /**
- \brief Fermeture d'une connection vers une database.
- \return resource
- */
-
- function close()
- {
- return mysql_close($this->db);
- }
-
-
- /**
- \brief Debut d'une transaction.
- \return int 1 si ouverture transaction ok ou deja ouverte, 0 en cas d'erreur
- */
-
- function begin()
- {
- if (! $this->transaction_opened)
- {
- $ret=$this->query("BEGIN");
- if ($ret) $this->transaction_opened++;
- return $ret;
- }
- else
- {
- $this->transaction_opened++;
- return 1;
- }
- }
-
- /**
- \brief Validation d'une transaction
- \return int 1 si validation ok ou niveau de transaction non ouverte, 0 en cas d'erreur
- */
-
- function commit()
- {
- if ($this->transaction_opened==1)
- {
- $ret=$this->query("COMMIT");
- if ($ret) $this->transaction_opened=0;
- return $ret;
- }
- else
- {
- $this->transaction_opened--;
- return 1;
- }
- }
-
- /**
- \brief Annulation d'une transaction et retour aux anciennes valeurs
- \return int 1 si annulation ok ou transaction non ouverte, 0 en cas d'erreur
- */
-
- function rollback()
- {
- if ($this->transaction_opened)
- {
- $ret=$this->query("ROLLBACK");
- $this->transaction_opened=0;
- return $ret;
- }
- else
- {
- return 1;
- }
- }
-
- /**
- \brief Effectue une requete et renvoi le resultset de réponse de la base
- \param query Contenu de la query
- \return resource Resultset de la reponse
- */
-
- function query($query)
- {
- $query = trim($query);
- $ret = mysql_query($query, $this->db);
-
- if (! eregi("^COMMIT",$query) && ! eregi("^ROLLBACK",$query)) {
- // Si requete utilisateur, on la sauvegarde ainsi que son resultset
- $this->lastquery=$query;
- $this->results = $ret;
- }
-
- return $ret;
- }
-
- /**
- \brief Renvoie les données de la requete.
- \param nb Contenu de la query
- \param fieldname Nom du champ
- \return resource
- */
-
- function result($nb, $fieldname)
- {
- return mysql_result($this->results, $nb, $fieldname);
- }
-
- /**
- \brief Renvoie la ligne courante (comme un objet) pour le curseur resultset.
- \param resultset Curseur de la requete voulue
- \return resource
- */
-
- function fetch_object($resultset=0)
- {
- // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
- if (! is_resource($resultset)) { $resultset=$this->results; }
- return mysql_fetch_object($resultset);
- }
-
- /**
- \brief Renvoie les données dans un tableau.
- \param resultset Curseur de la requete voulue
- \return array
- */
-
- function fetch_array($resultset=0)
- {
- // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
- if (! is_resource($resultset)) { $resultset=$this->results; }
- return mysql_fetch_array($resultset);
- }
-
- /**
- \brief Renvoie les données comme un tableau.
- \param resultset Curseur de la requete voulue
- \return array
- */
-
- function fetch_row($resultset=0)
- {
- // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
- if (! is_resource($resultset)) { $resultset=$this->results; }
- return mysql_fetch_row($resultset);
- }
-
- /**
- \brief Obtient les données d'un colonne et renvoie les données sous forme d'objet.
- \param resultset Curseur de la requete voulue
- \return array
- */
-
- function fetch_field($resultset=0)
- {
- // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
- if (! is_resource($resultset)) { $resultset=$this->results; }
- return mysql_fetch_field($resultset);
- }
-
- /**
- \brief Renvoie le nombre de lignes dans le resultat d'une requete SELECT
- \see affected_rows
- \param resultset Curseur de la requete voulue
- \return int Nombre de lignes
- */
-
- function num_rows($resultset=0)
- {
- // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
- if (! is_resource($resultset)) { $resultset=$this->results; }
- return mysql_num_rows($resultset);
- }
-
- /**
- \brief Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
- \see num_rows
- \param resultset Curseur de la requete voulue
- \return int Nombre de lignes
- */
-
- function affected_rows($resultset=0)
- {
- // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
- if (! is_resource($resultset)) { $resultset=$this->results; }
- // mysql necessite un link de base pour cette fonction contrairement
- // a pqsql qui prend un resultset
- return mysql_affected_rows($this->db);
- }
-
-
- /**
- \brief Renvoie le nombre de champs dans le resultat de la requete.
- \param resultset Curseur de la requete voulue
- \return int
- */
-
- function num_fields($resultset=0)
- {
- // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
- if (! is_resource($resultset)) { $resultset=$this->results; }
- return mysql_num_fields($resultset);
- }
-
- /**
- \brief Libère le dernier resultset utilisé sur cette connexion.
- \param resultset Curseur de la requete voulue
- \return resource
- */
-
- function free($resultset=0)
- {
- // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
- if (! is_resource($resultset)) { $resultset=$this->results; }
- return mysql_free_result($resultset);
- }
+ var $db; // Handler de base
+ var $type='mysql'; // Nom du gestionnaire
- /**
- \brief Défini les limites de la requète.
- \param limit
- \param offset
- \return int Limite
- */
-
- function plimit($limit=0,$offset=0)
- {
- if ($offset > 0)
- {
- return " LIMIT $offset,$limit ";
- }
- else
- {
- return " LIMIT $limit ";
- }
- }
-
-
- /**
- \brief Formatage par la base de données d'un champ de la base au format Timestamp ou Date (YYYY-MM-DD HH:MM:SS)
- afin de retourner une donnée toujours au format universel date tms unix.
- \param fname
- \return date
- */
- function pdate($fname)
- {
- return "unix_timestamp($fname)";
- }
-
- /**
- \brief Formatage de la date en fonction des locales.
- \param fname
- \return date
- */
- function idate($fname)
- {
- return strftime("%Y%m%d%H%M%S",$fname);
- }
-
- /**
- \brief Renvoie la derniere requete soumise par la methode query()
- \return lastquery
- */
-
- function lastquery()
- {
- return $this->lastquery;
- }
-
- /**
- \brief Renvoie le code erreur generique de l'operation precedente.
- \return error_num (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
- */
-
- function errno()
- {
+ var $results; // Resultset de la dernière requete
+
+ var $connected; // 1 si connecté, 0 sinon
+ var $database_selected; // 1 si base sélectionné, 0 sinon
+ var $transaction_opened; // 1 si une transaction est en cours, 0 sinon
+
+ var $ok;
+
+ // Constantes pour conversion code erreur MySql en code erreur générique
+ var $errorcode_map = array(
+ 1004 => 'DB_ERROR_CANNOT_CREATE',
+ 1005 => 'DB_ERROR_CANNOT_CREATE',
+ 1006 => 'DB_ERROR_CANNOT_CREATE',
+ 1007 => 'DB_ERROR_ALREADY_EXISTS',
+ 1008 => 'DB_ERROR_CANNOT_DROP',
+ 1046 => 'DB_ERROR_NODBSELECTED',
+ 1050 => 'DB_ERROR_TABLE_ALREADY_EXISTS',
+ 1051 => 'DB_ERROR_NOSUCHTABLE',
+ 1054 => 'DB_ERROR_NOSUCHFIELD',
+ 1062 => 'DB_ERROR_RECORD_ALREADY_EXISTS',
+ 1064 => 'DB_ERROR_SYNTAX',
+ 1100 => 'DB_ERROR_NOT_LOCKED',
+ 1136 => 'DB_ERROR_VALUE_COUNT_ON_ROW',
+ 1146 => 'DB_ERROR_NOSUCHTABLE',
+ 1048 => 'DB_ERROR_CONSTRAINT',
+ 1217 => 'DB_ERROR_CHILD_EXISTS'
+ );
+
+ /**
+ \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 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;
+ $this->transaction_opened=0;
+
+ // Essai connexion serveur
+ $this->db = $this->connect($host, $user, $pass, $newlink);
+
+ if ($this->db)
+ {
+ $this->connected = 1;
+ $this->ok = 1;
+ }
+ else
+ {
+ $this->connected = 0;
+ $this->ok = 0;
+ dolibarr_syslog("DoliDB::DoliDB : Erreur Connect");
+ }
+
+ // Si connexion serveur ok et si connexion base demandée, on essaie connexion base
+ if ($this->connected && $name)
+ {
+ if ($this->select_db($name) == 1)
+ {
+ $this->database_selected = 1;
+ $this->ok = 1;
+ }
+ else
+ {
+ $this->database_selected = 0;
+ $this->ok = 0;
+ dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db");
+ }
+ }
+ else
+ {
+ // Pas de selection de base demandée, ok ou ko
+ $this->database_selected = 0;
+ }
+
+ return $this->ok;
+ }
+
+ /**
+ \brief Selectionne une database.
+ \param database nom de la database
+ \return resource
+ */
+
+ function select_db($database)
+ {
+ return mysql_select_db($database, $this->db);
+ }
+
+ /**
+ \brief Connection vers le serveur
+ \param host addresse de la base de données
+ \param login nom de l'utilisateur autoris
+ \param passwd mot de passe
+ \return resource handler d'accès à la base
+ */
+
+ function connect($host, $login, $passwd, $newlink=0)
+ {
+ $this->db = @mysql_connect($host, $login, $passwd, $newlink);
+ //print "Resultat fonction connect: ".$this->db;
+ return $this->db;
+ }
+
+ /**
+ \brief Création d'une nouvelle base de donnée
+ \param database nom de la database à créer
+ \return resource resource définie si ok, null si ko
+ \remarks Ne pas utiliser la fonction mysql_create_db qui est deprecated
+ */
+
+ function create_db($database)
+ {
+ $ret=$this->query('CREATE DATABASE '.$database);
+ return $ret;
+ }
+
+
+ /**
+ \brief Copie d'un handler de database.
+ \return resource
+ */
+
+ function dbclone()
+ {
+ $db2 = new DoliDb("", "", "", "", "");
+ $db2->db = $this->db;
+ return $db2;
+ }
+
+ /**
+ \brief Ouverture d'une connection vers une database.
+ \param host Adresse de la base de données
+ \param login Nom de l'utilisateur autoris
+ \param passwd Mot de passe
+ \return resource handler d'accès à la base
+ */
+
+ function pconnect($host, $login, $passwd)
+ {
+ $this->db = mysql_pconnect($host, $login, $passwd);
+ return $this->db;
+ }
+
+ /**
+ \brief Fermeture d'une connection vers une database.
+ \return resource
+ */
+
+ function close()
+ {
+ return mysql_close($this->db);
+ }
+
+
+ /**
+ \brief Debut d'une transaction.
+ \return int 1 si ouverture transaction ok ou deja ouverte, 0 en cas d'erreur
+ */
+
+ function begin()
+ {
+ if (! $this->transaction_opened)
+ {
+ $ret=$this->query("BEGIN");
+ if ($ret) $this->transaction_opened++;
+ return $ret;
+ }
+ else
+ {
+ $this->transaction_opened++;
+ return 1;
+ }
+ }
+
+ /**
+ \brief Validation d'une transaction
+ \return int 1 si validation ok ou niveau de transaction non ouverte, 0 en cas d'erreur
+ */
+
+ function commit()
+ {
+ if ($this->transaction_opened==1)
+ {
+ $ret=$this->query("COMMIT");
+ if ($ret) $this->transaction_opened=0;
+ return $ret;
+ }
+ else
+ {
+ $this->transaction_opened--;
+ return 1;
+ }
+ }
+
+ /**
+ \brief Annulation d'une transaction et retour aux anciennes valeurs
+ \return int 1 si annulation ok ou transaction non ouverte, 0 en cas d'erreur
+ */
+
+ function rollback()
+ {
+ if ($this->transaction_opened)
+ {
+ $ret=$this->query("ROLLBACK");
+ $this->transaction_opened=0;
+ return $ret;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+
+ /**
+ \brief Effectue une requete et renvoi le resultset de réponse de la base
+ \param query Contenu de la query
+ \return resource Resultset de la reponse
+ */
+
+ function query($query)
+ {
+ $query = trim($query);
+ $ret = mysql_query($query, $this->db);
+
+ if (! eregi("^COMMIT",$query) && ! eregi("^ROLLBACK",$query)) {
+ // Si requete utilisateur, on la sauvegarde ainsi que son resultset
+ $this->lastquery=$query;
+ $this->results = $ret;
+ }
+
+ return $ret;
+ }
+
+ /**
+ \brief Renvoie les données de la requete.
+ \param nb Contenu de la query
+ \param fieldname Nom du champ
+ \return resource
+ */
+
+ function result($nb, $fieldname)
+ {
+ return mysql_result($this->results, $nb, $fieldname);
+ }
+
+ /**
+ \brief Renvoie la ligne courante (comme un objet) pour le curseur resultset.
+ \param resultset Curseur de la requete voulue
+ \return resource
+ */
+
+ function fetch_object($resultset=0)
+ {
+ // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
+ if (! is_resource($resultset)) { $resultset=$this->results; }
+ return mysql_fetch_object($resultset);
+ }
+
+ /**
+ \brief Renvoie les données dans un tableau.
+ \param resultset Curseur de la requete voulue
+ \return array
+ */
+
+ function fetch_array($resultset=0)
+ {
+ // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
+ if (! is_resource($resultset)) { $resultset=$this->results; }
+ return mysql_fetch_array($resultset);
+ }
+
+ /**
+ \brief Renvoie les données comme un tableau.
+ \param resultset Curseur de la requete voulue
+ \return array
+ */
+
+ function fetch_row($resultset=0)
+ {
+ // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
+ if (! is_resource($resultset)) { $resultset=$this->results; }
+ return mysql_fetch_row($resultset);
+ }
+
+ /**
+ \brief Obtient les données d'un colonne et renvoie les données sous forme d'objet.
+ \param resultset Curseur de la requete voulue
+ \return array
+ */
+
+ function fetch_field($resultset=0)
+ {
+ // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
+ if (! is_resource($resultset)) { $resultset=$this->results; }
+ return mysql_fetch_field($resultset);
+ }
+
+ /**
+ \brief Renvoie le nombre de lignes dans le resultat d'une requete SELECT
+ \see affected_rows
+ \param resultset Curseur de la requete voulue
+ \return int Nombre de lignes
+ */
+
+ function num_rows($resultset=0)
+ {
+ // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
+ if (! is_resource($resultset)) { $resultset=$this->results; }
+ return mysql_num_rows($resultset);
+ }
+
+ /**
+ \brief Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
+ \see num_rows
+ \param resultset Curseur de la requete voulue
+ \return int Nombre de lignes
+ */
+
+ function affected_rows($resultset=0)
+ {
+ // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
+ if (! is_resource($resultset)) { $resultset=$this->results; }
+ // mysql necessite un link de base pour cette fonction contrairement
+ // a pqsql qui prend un resultset
+ return mysql_affected_rows($this->db);
+ }
+
+
+ /**
+ \brief Renvoie le nombre de champs dans le resultat de la requete.
+ \param resultset Curseur de la requete voulue
+ \return int
+ */
+
+ function num_fields($resultset=0)
+ {
+ // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
+ if (! is_resource($resultset)) { $resultset=$this->results; }
+ return mysql_num_fields($resultset);
+ }
+
+ /**
+ \brief Libère le dernier resultset utilisé sur cette connexion.
+ \param resultset Curseur de la requete voulue
+ \return resource
+ */
+
+ function free($resultset=0)
+ {
+ // Si le resultset n'est pas fourni, on prend le dernier utilisé sur cette connexion
+ if (! is_resource($resultset)) { $resultset=$this->results; }
+ return mysql_free_result($resultset);
+ }
+
+ /**
+ \brief Défini les limites de la requète.
+ \param limit
+ \param offset
+ \return int Limite
+ */
+
+ function plimit($limit=0,$offset=0)
+ {
+ if ($offset > 0)
+ {
+ return " LIMIT $offset,$limit ";
+ }
+ else
+ {
+ return " LIMIT $limit ";
+ }
+ }
+
+
+ /**
+ \brief Formatage par la base de données d'un champ de la base au format Timestamp ou Date (YYYY-MM-DD HH:MM:SS)
+ afin de retourner une donnée toujours au format universel date tms unix.
+ \param fname
+ \return date
+ */
+ function pdate($fname)
+ {
+ return "unix_timestamp($fname)";
+ }
+
+ /**
+ \brief Formatage de la date en fonction des locales.
+ \param fname
+ \return date
+ */
+ function idate($fname)
+ {
+ return strftime("%Y%m%d%H%M%S",$fname);
+ }
+
+ /**
+ \brief Renvoie la derniere requete soumise par la methode query()
+ \return lastquery
+ */
+
+ function lastquery()
+ {
+ return $this->lastquery;
+ }
+
+ /**
+ \brief Renvoie le code erreur generique de l'operation precedente.
+ \return error_num (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
+ */
+
+ function errno()
+ {
if (isset($this->errorcode_map[mysql_errno($this->db)])) {
return $this->errorcode_map[mysql_errno($this->db)];
}
return 'DB_ERROR_'.mysql_errno($this->db);
- }
-
- /**
- \brief Renvoie le texte de l'erreur mysql de l'operation precedente.
- \return error_text
- */
-
- function error()
- {
- return mysql_error($this->db);
- }
-
- /**
- \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
- \return int id
- */
-
- function last_insert_id($tab)
- {
- return mysql_insert_id($this->db);
- }
-
- /**
- \brief Retourne le dsn pear
- \return dsn
- */
-
- function getdsn($db_type,$db_user,$db_pass,$db_host,$dbname)
- {
- $pear = $db_type.'://'.$db_user.':'.$db_pass.'@'.
- $db_host.'/'.$db_name;
-
- return $pear;
- }
-
- /**
- \brief Liste des tables dans une database.
- \param database Nom de la database
- \return resource
- */
-
- function list_tables($database)
- {
- $this->results = mysql_list_tables($database, $this->db);
- return $this->results;
- }
-
+ }
+
+ /**
+ \brief Renvoie le texte de l'erreur mysql de l'operation precedente.
+ \return error_text
+ */
+
+ function error()
+ {
+ return mysql_error($this->db);
+ }
+
+ /**
+ \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
+ \return int id
+ */
+
+ function last_insert_id($tab)
+ {
+ return mysql_insert_id($this->db);
+ }
+
+ /**
+ \brief Retourne le dsn pear
+ \return dsn
+ */
+
+ function getdsn($db_type,$db_user,$db_pass,$db_host,$dbname)
+ {
+ $pear = $db_type.'://'.$db_user.':'.$db_pass.'@'.
+ $db_host.'/'.$db_name;
+
+ return $pear;
+ }
+
+ /**
+ \brief Liste des tables dans une database.
+ \param database Nom de la database
+ \return resource
+ */
+
+ function list_tables($database)
+ {
+ $this->results = mysql_list_tables($database, $this->db);
+ return $this->results;
+ }
+
}
-
+
?>
diff --git a/htdocs/lib/pgsql.lib.php b/htdocs/lib/pgsql.lib.php
index 28fe4315722..c857dec674a 100644
--- a/htdocs/lib/pgsql.lib.php
+++ b/htdocs/lib/pgsql.lib.php
@@ -148,27 +148,22 @@ class DoliDb
}
/**
- \brief Connexion sur une base de donnée
- \param database nom de la database
- \return result resultat 1 pour ok, 0 pour non ok
+ \brief Création d'une nouvelle base de donnée
+ \param database nom de la database à créer
+ \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)
{
- if(createdb($database, $this->db))
- {
- return 1;
- }
- else
- {
- return 0;
- }
+ $ret=$this->query('CREATE DATABASE '.$database.';');
+ return $ret;
}
-
+
/**
- \brief Copie d'un handler de database.
- \return resource
+ \brief Copie d'un handler de database.
+ \return resource
*/
function dbclone()
@@ -179,12 +174,12 @@ class DoliDb
}
/**
- \brief Ouverture d'une connection vers une database.
- \param host Adresse de la base de données
- \param login Nom de l'utilisateur autorisé
- \param passwd Mot de passe
- \param name Nom de la database
- \return resource handler d'accès à la base
+ \brief Ouverture d'une connection vers une database.
+ \param host Adresse de la base de données
+ \param login Nom de l'utilisateur autorisé
+ \param passwd Mot de passe
+ \param name Nom de la database
+ \return resource handler d'accès à la base
*/
function pconnect($host, $login, $passwd, $name)
@@ -195,8 +190,8 @@ class DoliDb
}
/**
- \brief Fermeture d'une connection vers une database.
- \return resource
+ \brief Fermeture d'une connection vers une database.
+ \return resource
*/
function close()
|