diff --git a/htdocs/lib/databases/mssql.lib.php b/htdocs/lib/databases/mssql.lib.php index f1911674810..9c5663c613c 100644 --- a/htdocs/lib/databases/mssql.lib.php +++ b/htdocs/lib/databases/mssql.lib.php @@ -860,13 +860,13 @@ class DoliDb } /** - \brief Ins�re un nouveau champ dans une table - \param table Nom de la table - \param field_name Nom du champ � ins�rer - \param field_desc Tableau associatif de description duchamp � ins�rer[nom du param�tre][valeur du param�tre] - \param field_position Optionnel ex.: "after champtruc" - \return int <0 si KO, >0 si OK - */ + * \brief Insert a new field in table + * \param table Nom de la table + * \param field_name Nom du champ a inserer + * \param field_desc Tableau associatif de description du champ a inserer[nom du parametre][valeur du param�tre] + * \param field_position Optionnel ex.: "after champtruc" + * \return int <0 si KO, >0 si OK + */ function DDLAddField($table,$field_name,$field_desc,$field_position="") { // cl�s recherch�es dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra @@ -894,6 +894,26 @@ class DoliDb return 1; } + + /** + * \brief Drop a field in table + * \param table Nom de la table + * \param field_name Nom du champ a inserer + * \return int <0 si KO, >0 si OK + */ + function DDLDropField($table,$field_name) + { + $sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`"; + dolibarr_syslog($sql,LOG_DEBUG); + if (! $this->query($sql)) + { + $this->error=$this->lasterror(); + return -1; + } + else return 1; + } + + function getDefaultCharacterSetDatabase(){ /* $resql=$this->query('SHOW VARIABLES LIKE \'character_set_database\''); diff --git a/htdocs/lib/databases/mysql.lib.php b/htdocs/lib/databases/mysql.lib.php index c97a196e672..cb899763342 100644 --- a/htdocs/lib/databases/mysql.lib.php +++ b/htdocs/lib/databases/mysql.lib.php @@ -862,13 +862,13 @@ class DoliDb } /** - \brief Ins�re un nouveau champ dans une table - \param table Nom de la table - \param field_name Nom du champ � ins�rer - \param field_desc Tableau associatif de description duchamp � ins�rer[nom du param�tre][valeur du param�tre] - \param field_position Optionnel ex.: "after champtruc" - \return int <0 si KO, >0 si OK - */ + * \brief Insert a new field in table + * \param table Nom de la table + * \param field_name Nom du champ a inserer + * \param field_desc Tableau associatif de description du champ a inserer[nom du parametre][valeur du param�tre] + * \param field_position Optionnel ex.: "after champtruc" + * \return int <0 si KO, >0 si OK + */ function DDLAddField($table,$field_name,$field_desc,$field_position="") { // cl�s recherch�es dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra @@ -897,6 +897,25 @@ class DoliDb return 1; } + /** + * \brief Drop a field in table + * \param table Nom de la table + * \param field_name Nom du champ a inserer + * \return int <0 si KO, >0 si OK + */ + function DDLDropField($table,$field_name) + { + $sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`"; + dolibarr_syslog($sql,LOG_DEBUG); + if (! $this->query($sql)) + { + $this->error=$this->lasterror(); + return -1; + } + else return 1; + } + + /** \brief Create a user \param dolibarr_main_db_host Ip serveur diff --git a/htdocs/lib/databases/mysqli.lib.php b/htdocs/lib/databases/mysqli.lib.php index b629d88b881..4dc206263b1 100644 --- a/htdocs/lib/databases/mysqli.lib.php +++ b/htdocs/lib/databases/mysqli.lib.php @@ -876,13 +876,13 @@ class DoliDb } /** - \brief Ins�re un nouveau champ dans une table - \param table Nom de la table - \param field_name Nom du champ � ins�rer - \param field_desc Tableau associatif de description duchamp � ins�rer[nom du param�tre][valeur du param�tre] - \param field_position Optionnel ex.: "after champtruc" - \return int <0 si KO, >0 si OK - */ + * \brief Insert a new field in table + * \param table Nom de la table + * \param field_name Nom du champ a inserer + * \param field_desc Tableau associatif de description du champ a inserer[nom du parametre][valeur du param�tre] + * \param field_position Optionnel ex.: "after champtruc" + * \return int <0 si KO, >0 si OK + */ function DDLAddField($table,$field_name,$field_desc,$field_position="") { // cl�s recherch�es dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra @@ -911,6 +911,26 @@ class DoliDb return 1; } + + /** + * \brief Drop a field in table + * \param table Nom de la table + * \param field_name Nom du champ a inserer + * \return int <0 si KO, >0 si OK + */ + function DDLDropField($table,$field_name) + { + $sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`"; + dolibarr_syslog($sql,LOG_DEBUG); + if (! $this->query($sql)) + { + $this->error=$this->lasterror(); + return -1; + } + else return 1; + } + + /** \brief Create a user \param dolibarr_main_db_host Ip serveur diff --git a/htdocs/lib/databases/pgsql.lib.php b/htdocs/lib/databases/pgsql.lib.php index b1838e4ab40..21e6db757e8 100644 --- a/htdocs/lib/databases/pgsql.lib.php +++ b/htdocs/lib/databases/pgsql.lib.php @@ -823,6 +823,7 @@ class DoliDb } + /** * \brief Create a new database * \param database Database name to create @@ -874,6 +875,61 @@ class DoliDb return 1; } + /** + * \brief Insert a new field in table + * \param table Nom de la table + * \param field_name Nom du champ a inserer + * \param field_desc Tableau associatif de description du champ a inserer[nom du parametre][valeur du param�tre] + * \param field_position Optionnel ex.: "after champtruc" + * \return int <0 si KO, >0 si OK + */ + function DDLAddField($table,$field_name,$field_desc,$field_position="") + { + // cl�s recherch�es dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra + // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment'); + $sql= "ALTER TABLE ".$table." ADD ".$field_name." "; + $sql .= $field_desc['type']; + if( eregi("^[^ ]",$field_desc['value'])) + $sql .= "(".$field_desc['value'].")"; + if( eregi("^[^ ]",$field_desc['attribute'])) + $sql .= " ".$field_desc['attribute']; + if( eregi("^[^ ]",$field_desc['null'])) + $sql .= " ".$field_desc['null']; + if( eregi("^[^ ]",$field_desc['default'])) + if(eregi("null",$field_desc['default'])) + $sql .= " default ".$field_desc['default']; + else + $sql .= " default '".$field_desc['default']."'"; + if( eregi("^[^ ]",$field_desc['extra'])) + $sql .= " ".$field_desc['extra']; + $sql .= " ".$field_position; + + dolibarr_syslog($sql,LOG_DEBUG); + if(! $this -> query($sql)) + return -1; + else + return 1; + } + + /** + * \brief Drop a field in table + * \param table Nom de la table + * \param field_name Nom du champ a inserer + * \return int <0 si KO, >0 si OK + */ + function DDLDropField($table,$field_name) + { + $sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`"; + dolibarr_syslog($sql,LOG_DEBUG); + if (! $this->query($sql)) + { + $this->error=$this->lasterror(); + return -1; + } + else return 1; + } + + function getDefaultCharacterSetDatabase(){ $resql=$this->query('SHOW SERVER_ENCODING'); $liste=$this->fetch_array($resql);