diff --git a/htdocs/install/etape2.php b/htdocs/install/etape2.php
index b7e111a7e6f..885e8ec4290 100644
--- a/htdocs/install/etape2.php
+++ b/htdocs/install/etape2.php
@@ -315,26 +315,6 @@ if ($_POST["action"] == "set")
}
- /***************************************************************************************
- *
- * Positionnement des droits
- *
- ***************************************************************************************/
- if ($ok)
- {
- // Droits sur les tables
- $grant_query=$db->getGrantForUserQuery($dolibarr_main_db_user);
-
- if ($grant_query) // Seules les bases qui en ont besoin le definisse
- {
- if ($db->query($grant_query))
- {
- print "
| Grant User | ".$langs->trans("OK")." |
";
- }
- }
- }
-
-
/***************************************************************************************
*
* Chargement fichier functions.sql
diff --git a/htdocs/lib/databases/mssql.lib.php b/htdocs/lib/databases/mssql.lib.php
index 2865d6c1d69..aa26756f303 100644
--- a/htdocs/lib/databases/mssql.lib.php
+++ b/htdocs/lib/databases/mssql.lib.php
@@ -528,6 +528,18 @@ class DoliDb
}
}
+
+ /**
+ \brief Escape a string to insert data.
+ \param stringtoencode String to escape
+ \return string String escaped
+ */
+ function escape($stringtoencode)
+ {
+ return addslashes($stringtoencode);
+ }
+
+
/**
\brief Formatage (par la base de données) d'un champ de la base au format TMS ou Date (YYYY-MM-DD HH:MM:SS)
afin de retourner une donnée toujours au format universel date TMS unix.
@@ -655,96 +667,67 @@ class DoliDb
}
- // Next function are not required. Only minor features use them.
- //--------------------------------------------------------------
+ // Next function are not required. Only minor features use them.
+ //--------------------------------------------------------------
- /**
- \brief Renvoie l'id de la connexion
- \return string Id connexion
- */
- function getConnectId()
- {
- $resql=$this->query('SELECT CONNECTION_ID()');
- $row=$this->fetch_row($resql);
- return $row[0];
- }
+ /**
+ \brief Renvoie l'id de la connexion
+ \return string Id connexion
+ */
+ function DDLGetConnectId()
+ {
+ $resql=$this->query('SELECT CONNECTION_ID()');
+ $row=$this->fetch_row($resql);
+ return $row[0];
+ }
- /**
- \brief Renvoie la commande sql qui donne les droits à user sur toutes les tables
- \param databaseuser User à autoriser
- \return string Requete sql
- */
- function getGrantForUserQuery($databaseuser)
- {
- /*
- $query = "DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500)) INSERT INTO @tables SELECT '"
- $query .= "GRANT SELECT ON '+NAME+' TO ".$databaseuser." FROM sysobjects WHERE TYPE = 'U' AND "
- $query .= "NAME NOT LIKE 'SYNC%' DECLARE @rowid int, @sqlstr varchar(500) SET @rowid = 0 "
- $query .= "SET @sqlstr = '' DECLARE grant_tbl_cursor CURSOR FOR SELECT ROWID, SQLSTR FROM @tables ORDER BY ROWID"
- $query .= "OPEN grant_tbl_cursor FETCH NEXT FROM grant_tbl_cursor INTO @rowid,@sqlstr WHILE @@FETCH_STATUS = 0 "
- $query .= "BEGIN EXECUTE (@sqlstr) FETCH NEXT FROM grant_tbl_cursor INTO @rowid,@sqlstr END CLOSE grant_tbl_cursor "
- $query .= "DEALLOCATE grant_tbl_cursor"
- */
- return '';
- }
-
-
- /**
- \brief Retourne le dsn pear
- \return dsn
- */
- function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
- {
- return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name;
- }
-
- /**
- \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=mssql, ...) car elles sont deprecated
- On force creation de la base avec le charset forcecharset
- */
- function DDLCreateDb($database)
- {
- // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
- $sql = 'CREATE DATABASE '.$database;
- $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
- $ret=$this->query($sql);
- if (! $ret)
- {
- // On réessaie pour compatibilité avec mssql < 5.0
- $sql = 'CREATE DATABASE '.$database;
- $ret=$this->query($sql);
- }
+ /**
+ \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=mssql, ...) car elles sont deprecated
+ On force creation de la base avec le charset forcecharset
+ */
+ function DDLCreateDb($database)
+ {
+ // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
+ $sql = 'CREATE DATABASE '.$database;
+ $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
+ $ret=$this->query($sql);
+ if (! $ret)
+ {
+ // On réessaie pour compatibilité avec mssql < 5.0
+ $sql = 'CREATE DATABASE '.$database;
+ $ret=$this->query($sql);
+ }
- return $ret;
- }
+ return $ret;
+ }
- /**
- \brief Liste des tables dans une database.
- \param database Nom de la database
- \return resource
- */
- function DDLListTables($database)
- {
- $this->results = mssql_list_tables($database, $this->db);
- return $this->results;
- }
-
- /**
- \brief Crée une table
- \param table Nom de la table
- \param fields Tableau associatif [nom champ][tableau des descriptions]
- \param primary_key Nom du champ qui sera la clef primaire
- \param unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur
- \param fulltext Tableau des Nom de champs qui seront indexés en fulltext
- \param key Tableau des champs clés noms => valeur
- \param type Type de la table
- \return int <0 si KO, >=0 si OK
- */
+ /**
+ \brief Liste des tables dans une database.
+ \param database Nom de la database
+ \return resource
+ */
+ function DDLListTables($database)
+ {
+ $this->results = mssql_list_tables($database, $this->db);
+ return $this->results;
+ }
+
+ /**
+ \brief Crée une table
+ \param table Nom de la table
+ \param fields Tableau associatif [nom champ][tableau des descriptions]
+ \param primary_key Nom du champ qui sera la clef primaire
+ \param unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur
+ \param fulltext Tableau des Nom de champs qui seront indexés en fulltext
+ \param key Tableau des champs clés noms => valeur
+ \param type Type de la table
+ \return int <0 si KO, >=0 si OK
+ */
function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="")
{
// clés recherchées dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
diff --git a/htdocs/lib/databases/mysql.lib.php b/htdocs/lib/databases/mysql.lib.php
index c07b1fc3e89..30123e9b80f 100644
--- a/htdocs/lib/databases/mysql.lib.php
+++ b/htdocs/lib/databases/mysql.lib.php
@@ -207,15 +207,15 @@ class DoliDb
}
- /**
- \brief Selectionne une database.
- \param database Nom de la database
- \return boolean true si ok, false si ko
- */
- function select_db($database)
- {
- return mysql_select_db($database, $this->db);
- }
+ /**
+ \brief Selectionne une database.
+ \param database Nom de la database
+ \return boolean true si ok, false si ko
+ */
+ function select_db($database)
+ {
+ return mysql_select_db($database, $this->db);
+ }
/**
\brief Connection vers le serveur
@@ -248,15 +248,15 @@ class DoliDb
return $this->db;
}
- /**
- \brief Renvoie la version du serveur
- \return string Chaine version
- */
- function getVersion()
- {
- return mysql_get_server_info($this->db);
- }
-
+ /**
+ \brief Renvoie la version du serveur
+ \return string Chaine version
+ */
+ function getVersion()
+ {
+ return mysql_get_server_info($this->db);
+ }
+
/**
\brief Renvoie la version du serveur sous forme de nombre
\return string Chaine version
@@ -521,7 +521,18 @@ class DoliDb
}
- /**
+ /**
+ \brief Escape a string to insert data.
+ \param stringtoencode String to escape
+ \return string String escaped
+ */
+ function escape($stringtoencode)
+ {
+ return addslashes($stringtoencode);
+ }
+
+
+ /**
\brief Formatage (par la base de données) d'un champ de la base au format TMS ou Date (YYYY-MM-DD HH:MM:SS)
afin de retourner une donnée toujours au format universel date TMS unix.
Fonction à utiliser pour générer les SELECT.
@@ -640,63 +651,44 @@ class DoliDb
- // Next function are not required. Only minor features use them.
- //--------------------------------------------------------------
+ // Next function are not required. Only minor features use them.
+ //--------------------------------------------------------------
- /**
- \brief Renvoie l'id de la connexion
- \return string Id connexion
- */
- function getConnectId()
- {
- $resql=$this->query('SELECT CONNECTION_ID()');
- $row=$this->fetch_row($resql);
- return $row[0];
- }
+ /**
+ \brief Renvoie l'id de la connexion
+ \return string Id connexion
+ */
+ function DDLGetConnectId()
+ {
+ $resql=$this->query('SELECT CONNECTION_ID()');
+ $row=$this->fetch_row($resql);
+ return $row[0];
+ }
- /**
- \brief Renvoie la commande sql qui donne les droits à user sur toutes les tables
- \param databaseuser User à autoriser
- \return string Requete sql
- */
- function getGrantForUserQuery($databaseuser)
- {
- return '';
- }
-
-
- /**
- \brief Retourne le dsn pear
- \return dsn
- */
- function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
- {
- return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name;
- }
-
- /**
- \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
- On force creation de la base avec le charset forcecharset
- */
- function DDLCreateDb($database)
- {
- // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
- $sql = 'CREATE DATABASE '.$database;
- $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
- $ret=$this->query($sql);
- if (! $ret)
- {
- // On réessaie pour compatibilité avec Mysql < 4.1.1
+
+ /**
+ \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
+ On force creation de la base avec le charset forcecharset
+ */
+ function DDLCreateDb($database)
+ {
+ // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database;
+ $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
$ret=$this->query($sql);
+ if (! $ret)
+ {
+ // On réessaie pour compatibilité avec Mysql < 4.1.1
+ $sql = 'CREATE DATABASE '.$database;
+ $ret=$this->query($sql);
}
- return $ret;
- }
+ return $ret;
+ }
/**
\brief Liste des tables dans une database.
diff --git a/htdocs/lib/databases/mysqli.lib.php b/htdocs/lib/databases/mysqli.lib.php
index af9300eba0a..d36c3ff93eb 100644
--- a/htdocs/lib/databases/mysqli.lib.php
+++ b/htdocs/lib/databases/mysqli.lib.php
@@ -536,6 +536,17 @@ class DoliDb
}
+ /**
+ \brief Escape a string to insert data.
+ \param stringtoencode String to escape
+ \return string String escaped
+ */
+ function escape($stringtoencode)
+ {
+ return addslashes($stringtoencode);
+ }
+
+
/**
\brief Formatage (par la base de données) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS)
afin de retourner une donnée toujours au format universel date tms unix.
@@ -664,31 +675,13 @@ class DoliDb
\brief Renvoie l'id de la connexion
\return string Id connexion
*/
- function getConnectId()
+ function DDLGetConnectId()
{
$resql=$this->query('SELECT CONNECTION_ID()');
$row=$this->fetch_row($resql);
return $row[0];
}
- /**
- \brief Renvoie la commande sql qui donne les droits sur les tables
- \return string Requete sql
- */
- function getGrantForUserQuery($databaseuser)
- {
- return '';
- }
-
-
- /**
- \brief Retourne le dsn pear
- \return dsn
- */
- function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
- {
- return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name;
- }
/**
\brief Création d'une nouvelle base de donnée
@@ -696,20 +689,20 @@ 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 DDLCreateDb($database)
- {
- // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
- $sql = 'CREATE DATABASE '.$database;
- $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
- $ret=$this->query($sql);
- if (! $ret)
- {
- // On réessaie pour compatibilité avec Mysql < 4.1.1
- $sql = 'CREATE DATABASE '.$database;
- $ret=$this->query($sql);
- }
- return $ret;
- }
+ function DDLCreateDb($database)
+ {
+ // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
+ $sql = 'CREATE DATABASE '.$database;
+ $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
+ $ret=$this->query($sql);
+ if (! $ret)
+ {
+ // On réessaie pour compatibilité avec Mysql < 4.1.1
+ $sql = 'CREATE DATABASE '.$database;
+ $ret=$this->query($sql);
+ }
+ return $ret;
+ }
/**
\brief Liste des tables dans une database.
diff --git a/htdocs/lib/databases/pgsql.lib.php b/htdocs/lib/databases/pgsql.lib.php
index 972aee0d2fc..cecbc1d0845 100644
--- a/htdocs/lib/databases/pgsql.lib.php
+++ b/htdocs/lib/databases/pgsql.lib.php
@@ -459,6 +459,17 @@ class DoliDb
}
+ /**
+ \brief Escape a string to insert data.
+ \param stringtoencode String to escape
+ \return string String escaped
+ */
+ function escape($stringtoencode)
+ {
+ return addslashes($stringtoencode);
+ }
+
+
/**
\brief Formatage (par la base de données) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS)
afin de retourner une donnée toujours au format universel date tms unix.
@@ -591,54 +602,12 @@ class DoliDb
\brief Renvoie l'id de la connexion
\return string Id connexion
*/
- function getConnectId()
+ function DDLGetConnectId()
{
return '?';
}
- /**
- \brief Renvoie la commande sql qui donne les droits à user sur toutes les tables
- \param databaseuser User à autoriser
- \return string Requete sql
- */
- function getGrantForUserQuery($databaseuser)
- {
- // Scan tables pour générer le grant
- /*$dir = DOL_DOCUMENT_ROOT."/pgsql/tables";
-
- $handle=opendir($dir);
- $table_list="";
- while (($file = readdir($handle))!==false)
- {
- if (! ereg("\.key\.sql",$file) && ereg("^(.*)\.sql",$file,$reg))
- {
- if ($table_list) {
- $table_list.=", ".$reg[0];
- }
- else {
- $table_list.=$reg[0];
- }
- }
- }
-
- // Genere le grant_query
- $grant_query = 'GRANT ALL ON '.$table_list.' TO "'.$databaseuser.'";';
- return $grant_query;
- */
- return '';
- }
-
- /**
- \brief Retourne le dsn pear
- \return dsn
- */
- function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
- {
- return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name;
- }
-
-
/**
\brief Création d'une nouvelle base de donnée
\param database nom de la database à créer