Qual: Renommage de quelques fonctions des drivers DB pour plus de clarté
This commit is contained in:
parent
f2daee0011
commit
7b2533a21f
@ -50,15 +50,15 @@ else if ($_POST["action"] == 'multiprix_num')
|
|||||||
}
|
}
|
||||||
if ($_POST["action"] == 'multiprix')
|
if ($_POST["action"] == 'multiprix')
|
||||||
{
|
{
|
||||||
$res=$db->desc_table(MAIN_DB_PREFIX."societe","price_level");
|
$res=$db->DDLDescTable(MAIN_DB_PREFIX."societe","price_level");
|
||||||
if(! $db->fetch_row())
|
if(! $db->fetch_row())
|
||||||
{
|
{
|
||||||
$field_desc = array('type'=>'TINYINT','value'=>'4','default'=>'1');
|
$field_desc = array('type'=>'TINYINT','value'=>'4','default'=>'1');
|
||||||
// on ajoute le champ price_level dans la table societe
|
// on ajoute le champ price_level dans la table societe
|
||||||
if(! $db->add_field(MAIN_DB_PREFIX."societe","price_level",$field_desc))
|
if(! $db->DDLAddField(MAIN_DB_PREFIX."societe","price_level",$field_desc))
|
||||||
{
|
{
|
||||||
dolibarr_print_error($db);
|
dolibarr_print_error($db);
|
||||||
print "<script language='JavaScript'>setTimeout(\"document.location='./produit.php'\",5000);</script>";
|
exit;
|
||||||
}
|
}
|
||||||
// on crée la table societe_prices
|
// on crée la table societe_prices
|
||||||
else
|
else
|
||||||
@ -70,7 +70,7 @@ if ($_POST["action"] == 'multiprix')
|
|||||||
$fields['datec'] = array('type'=>'datetime','default'=> 'null');
|
$fields['datec'] = array('type'=>'datetime','default'=> 'null');
|
||||||
$fields['fk_user_author'] = array('type'=>'int','value'=>'11','default'=> 'null');
|
$fields['fk_user_author'] = array('type'=>'int','value'=>'11','default'=> 'null');
|
||||||
$fields['price_level'] = array('type'=>'tinyint','value'=>'4','default'=> '1');
|
$fields['price_level'] = array('type'=>'tinyint','value'=>'4','default'=> '1');
|
||||||
if(! $db->create_table($table,$fields,"rowid","InnoDB"))
|
if(! $db->DDLCreateTable($table,$fields,"rowid","InnoDB") > 0)
|
||||||
{
|
{
|
||||||
dolibarr_print_error($db);
|
dolibarr_print_error($db);
|
||||||
print "<script language='JavaScript'>setTimeout(\"document.location='./produit.php'\",5000);</script>";
|
print "<script language='JavaScript'>setTimeout(\"document.location='./produit.php'\",5000);</script>";
|
||||||
@ -93,8 +93,8 @@ if ($_POST["action"] == 'multiprix')
|
|||||||
}
|
}
|
||||||
else if ($_POST["action"] == 'sousproduits')
|
else if ($_POST["action"] == 'sousproduits')
|
||||||
{
|
{
|
||||||
$res=$db -> desc_table(MAIN_DB_PREFIX."product_association");
|
$res=$db->DDLDescTable(MAIN_DB_PREFIX."product_association");
|
||||||
if(! $db -> fetch_row())
|
if(! $db->fetch_row())
|
||||||
{
|
{
|
||||||
$table = MAIN_DB_PREFIX."product_association";
|
$table = MAIN_DB_PREFIX."product_association";
|
||||||
$fields['fk_product_pere'] = array('type'=>'int','value'=>'11','null'=> 'not null','default'=> '0');
|
$fields['fk_product_pere'] = array('type'=>'int','value'=>'11','null'=> 'not null','default'=> '0');
|
||||||
@ -102,7 +102,7 @@ else if ($_POST["action"] == 'sousproduits')
|
|||||||
$fields['qty'] = array('type'=>'double','default'=> 'null');
|
$fields['qty'] = array('type'=>'double','default'=> 'null');
|
||||||
$keys['idx_product_association_fk_product_pere'] = "fk_product_pere" ;
|
$keys['idx_product_association_fk_product_pere'] = "fk_product_pere" ;
|
||||||
$keys['idx_product_association_fk_product_fils'] = "fk_product_fils" ;
|
$keys['idx_product_association_fk_product_fils'] = "fk_product_fils" ;
|
||||||
if(! $db -> create_table($table,$fields,"","InnoDB","","",$keys))
|
if (! $db->DDLCreateTable($table,$fields,"","InnoDB","","",$keys) > 0)
|
||||||
{
|
{
|
||||||
dolibarr_print_error($db);
|
dolibarr_print_error($db);
|
||||||
print "<script language='JavaScript'>setTimeout(\"document.location='./produit.php'\",5000);</script>";
|
print "<script language='JavaScript'>setTimeout(\"document.location='./produit.php'\",5000);</script>";
|
||||||
|
|||||||
@ -424,7 +424,7 @@ if ($_POST["action"] == "set")
|
|||||||
|
|
||||||
if ($db->connected)
|
if ($db->connected)
|
||||||
{
|
{
|
||||||
if ($db->create_db($dolibarr_main_db_name))
|
if ($db->DDLCreateDb($dolibarr_main_db_name))
|
||||||
{
|
{
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print $langs->trans("DatabaseCreation").' : ';
|
print $langs->trans("DatabaseCreation").' : ';
|
||||||
|
|||||||
@ -43,7 +43,7 @@ class DoliDb
|
|||||||
var $type='mysql'; // Nom du gestionnaire
|
var $type='mysql'; // Nom du gestionnaire
|
||||||
var $forcecharset='latin1';
|
var $forcecharset='latin1';
|
||||||
var $forcecollate='latin1_swedish_ci';
|
var $forcecollate='latin1_swedish_ci';
|
||||||
var $versionmin=array(4,1,0);
|
var $versionmin=array(3,1,0); // Version min database
|
||||||
|
|
||||||
var $results; // Resultset de la dernière requete
|
var $results; // Resultset de la dernière requete
|
||||||
|
|
||||||
@ -190,6 +190,7 @@ class DoliDb
|
|||||||
\param passwd mot de passe
|
\param passwd mot de passe
|
||||||
\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
|
||||||
|
\seealso close
|
||||||
*/
|
*/
|
||||||
function connect($host, $login, $passwd, $name)
|
function connect($host, $login, $passwd, $name)
|
||||||
{
|
{
|
||||||
@ -222,33 +223,11 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\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)
|
|
||||||
{
|
|
||||||
// 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 < 5.0
|
|
||||||
$sql = 'CREATE DATABASE '.$database;
|
|
||||||
$ret=$this->query($sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
//print "database=".$this->database_name." ret=".$ret." mysqlerror=".mysql_error($this->db);
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fermeture d'une connection vers une database.
|
\brief Fermeture d'une connection vers une database.
|
||||||
\return resource
|
\return resource
|
||||||
|
\seealso connect
|
||||||
*/
|
*/
|
||||||
function close()
|
function close()
|
||||||
{
|
{
|
||||||
@ -578,14 +557,59 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie la commande sql qui donne les droits sur les tables
|
\brief Renvoie la commande sql qui donne les droits à user sur toutes les tables
|
||||||
\return string Requete sql
|
\param databaseuser User à autoriser
|
||||||
|
\return string Requete sql
|
||||||
*/
|
*/
|
||||||
function getGrantForUserQuery($databaseuser)
|
function getGrantForUserQuery($databaseuser)
|
||||||
{
|
{
|
||||||
return '';
|
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
|
||||||
|
*/
|
||||||
|
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 < 5.0
|
||||||
|
$sql = 'CREATE DATABASE '.$database;
|
||||||
|
$ret=$this->query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
//print "database=".$this->database_name." ret=".$ret." mysqlerror=".mysql_error($this->db);
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Liste des tables dans une database.
|
||||||
|
\param database Nom de la database
|
||||||
|
\return resource
|
||||||
|
*/
|
||||||
|
function DDLListTables($database)
|
||||||
|
{
|
||||||
|
$this->results = mysql_list_tables($database, $this->db);
|
||||||
|
return $this->results;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Crée une table
|
\brief Crée une table
|
||||||
\param table Nom de la table
|
\param table Nom de la table
|
||||||
@ -597,7 +621,7 @@ class DoliDb
|
|||||||
\param type type de la table
|
\param type type de la table
|
||||||
\return true/false selon si requête a provoqué un erreur mysql ou pas
|
\return true/false selon si requête a provoqué un erreur mysql ou pas
|
||||||
*/
|
*/
|
||||||
function create_table($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="")
|
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
|
// clés recherchées dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
|
||||||
// ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
|
// ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
|
||||||
@ -661,6 +685,19 @@ class DoliDb
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief décrit une table dans une database.
|
||||||
|
\param table Nom de la table
|
||||||
|
\param field Optionnel : Nom du champ si l'on veut la desc d'un champ
|
||||||
|
\return resource
|
||||||
|
*/
|
||||||
|
function DDLDescTable($table,$field="")
|
||||||
|
{
|
||||||
|
// $this->results = $this->query("DESC ".$table." ".$field);
|
||||||
|
$this->results = $this->query("DESC ".$table." ".$field);
|
||||||
|
return $this->results;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Insère un nouveau champ dans une table
|
\brief Insère un nouveau champ dans une table
|
||||||
\param table Nom de la table
|
\param table Nom de la table
|
||||||
@ -669,7 +706,7 @@ class DoliDb
|
|||||||
\param field_position Optionnel ex.: "after champtruc"
|
\param field_position Optionnel ex.: "after champtruc"
|
||||||
\return true/false Selon si requête a provoqué un erreur mysql ou pas
|
\return true/false Selon si requête a provoqué un erreur mysql ou pas
|
||||||
*/
|
*/
|
||||||
function add_field($table,$field_name,$field_desc,$field_position="")
|
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
|
// 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');
|
// ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
|
||||||
@ -695,40 +732,6 @@ class DoliDb
|
|||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
\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 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 décrit une table dans une database.
|
|
||||||
\param table Nom de la table
|
|
||||||
\param field Optionnel : Nom du champ si l'on veut la desc d'un champ
|
|
||||||
\return resource
|
|
||||||
*/
|
|
||||||
function desc_table($table,$field="")
|
|
||||||
{
|
|
||||||
// $this->results = $this->query("DESC ".$table." ".$field);
|
|
||||||
$this->results = $this->query("DESC ".$table." ".$field);
|
|
||||||
return $this->results;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -43,6 +43,7 @@ class DoliDb
|
|||||||
var $type='mysqli'; // Nom du gestionnaire
|
var $type='mysqli'; // Nom du gestionnaire
|
||||||
var $forcecharset='latin1';
|
var $forcecharset='latin1';
|
||||||
var $forcecollate='latin1_swedish_ci';
|
var $forcecollate='latin1_swedish_ci';
|
||||||
|
var $versionmin=array(4,1,0); // Version min database
|
||||||
|
|
||||||
var $results; // Resultset de la dernière requete
|
var $results; // Resultset de la dernière requete
|
||||||
|
|
||||||
@ -189,6 +190,7 @@ class DoliDb
|
|||||||
\param passwd mot de passe
|
\param passwd mot de passe
|
||||||
\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
|
||||||
|
\seealso close
|
||||||
*/
|
*/
|
||||||
function connect($host, $login, $passwd, $name)
|
function connect($host, $login, $passwd, $name)
|
||||||
{
|
{
|
||||||
@ -221,32 +223,10 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\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)
|
|
||||||
{
|
|
||||||
$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 < 5.0
|
|
||||||
$sql = 'CREATE DATABASE '.$database;
|
|
||||||
$ret=$this->query($sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
//print "database=".$this->database_name." ret=".$ret." mysqlerror=".mysqli_error($this->db);
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fermeture d'une connection vers une database.
|
\brief Fermeture d'une connection vers une database.
|
||||||
\return resource
|
\return resource
|
||||||
|
\seealso connect
|
||||||
*/
|
*/
|
||||||
function close()
|
function close()
|
||||||
{
|
{
|
||||||
@ -359,142 +339,6 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Next function are not required. Only minor features use them.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Renvoie l'id de la connection
|
|
||||||
\return string Id connection
|
|
||||||
*/
|
|
||||||
function getConnectId()
|
|
||||||
{
|
|
||||||
$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 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 true/false selon si requête a provoqué un erreur mysql ou pas
|
|
||||||
*/
|
|
||||||
function create_table($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
|
|
||||||
// ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
|
|
||||||
$sql = "create table ".$table."(";
|
|
||||||
$i=0;
|
|
||||||
foreach($fields as $field_name => $field_desc)
|
|
||||||
{
|
|
||||||
$sqlfields[$i] = $field_name." ";
|
|
||||||
$sqlfields[$i] .= $field_desc['type'];
|
|
||||||
if( eregi("^[^ ]",$field_desc['value']))
|
|
||||||
$sqlfields[$i] .= "(".$field_desc['value'].")";
|
|
||||||
else if( eregi("^[^ ]",$field_desc['attribute']))
|
|
||||||
$sqlfields[$i] .= " ".$field_desc['attribute'];
|
|
||||||
else if( eregi("^[^ ]",$field_desc['default']))
|
|
||||||
{
|
|
||||||
if(eregi("null",$field_desc['default']))
|
|
||||||
$sqlfields[$i] .= " default ".$field_desc['default'];
|
|
||||||
else
|
|
||||||
$sqlfields[$i] .= " default '".$field_desc['default']."'";
|
|
||||||
}
|
|
||||||
else if( eregi("^[^ ]",$field_desc['null']))
|
|
||||||
$sqlfields[$i] .= " ".$field_desc['null'];
|
|
||||||
|
|
||||||
else if( eregi("^[^ ]",$field_desc['extra']))
|
|
||||||
$sqlfields[$i] .= " ".$field_desc['extra'];
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
if($primary_key != "")
|
|
||||||
$pk = "primary key(".$primary_key.")";
|
|
||||||
|
|
||||||
if($unique_keys != "")
|
|
||||||
{
|
|
||||||
$i = 0;
|
|
||||||
foreach($unique_keys as $key => $value)
|
|
||||||
{
|
|
||||||
$sqluq[$i] = "UNIQUE KEY '".$key."' ('".$value."')";
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if($keys != "")
|
|
||||||
{
|
|
||||||
$i = 0;
|
|
||||||
foreach($keys as $key => $value)
|
|
||||||
{
|
|
||||||
$sqlk[$i] = "KEY ".$key." (".$value.")";
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$sql .= implode(',',$sqlfields);
|
|
||||||
if($primary_key != "")
|
|
||||||
$sql .= ",".$pk;
|
|
||||||
if($unique_keys != "")
|
|
||||||
$sql .= ",".implode(',',$sqluq);
|
|
||||||
if($keys != "")
|
|
||||||
$sql .= ",".implode(',',$sqlk);
|
|
||||||
$sql .=") type=".$type;
|
|
||||||
// dolibarr_syslog($sql);
|
|
||||||
if(! $this -> query($sql))
|
|
||||||
return false;
|
|
||||||
else
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
\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 true/false selon si requête a provoqué un erreur mysql ou pas
|
|
||||||
*/
|
|
||||||
function add_field($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;
|
|
||||||
|
|
||||||
if(! $this -> query($sql))
|
|
||||||
return false;
|
|
||||||
else
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie les données dans un tableau.
|
\brief Renvoie les données dans un tableau.
|
||||||
\param resultset Curseur de la requete voulue
|
\param resultset Curseur de la requete voulue
|
||||||
@ -696,38 +540,200 @@ class DoliDb
|
|||||||
return mysqli_insert_id($this->db);
|
return mysqli_insert_id($this->db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Next function are not required. Only minor features use them.
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Renvoie l'id de la connection
|
||||||
|
\return string Id connection
|
||||||
|
*/
|
||||||
|
function getConnectId()
|
||||||
|
{
|
||||||
|
$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
|
\brief Retourne le dsn pear
|
||||||
\return dsn
|
\return dsn
|
||||||
*/
|
*/
|
||||||
function getdsn($db_type,$db_user,$db_pass,$db_host,$db_name)
|
function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
|
||||||
{
|
{
|
||||||
return $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
|
||||||
|
*/
|
||||||
|
function DDLCreateDb($database)
|
||||||
|
{
|
||||||
|
$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 < 5.0
|
||||||
|
$sql = 'CREATE DATABASE '.$database;
|
||||||
|
$ret=$this->query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
//print "database=".$this->database_name." ret=".$ret." mysqlerror=".mysqli_error($this->db);
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Liste des tables dans une database.
|
\brief Liste des tables dans une database.
|
||||||
\param database Nom de la database
|
\param database Nom de la database
|
||||||
\return resource
|
\return resource
|
||||||
*/
|
*/
|
||||||
function list_tables($database)
|
function DDLListTables($database)
|
||||||
{
|
{
|
||||||
$this->results = mysqli_list_tables($database, $this->db);
|
$this->results = mysqli_list_tables($database, $this->db);
|
||||||
return $this->results;
|
return $this->results;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
\brief décrit une table dans une database.
|
/**
|
||||||
\param table Nom de la table
|
\brief Crée une table
|
||||||
\param field Optionnel : Nom du champ si l'on veut la desc d'un champ
|
\param table Nom de la table
|
||||||
\return resource
|
\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 true/false selon si requête a provoqué un erreur mysql ou pas
|
||||||
*/
|
*/
|
||||||
function desc_table($table,$field="")
|
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
|
||||||
|
// ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
|
||||||
|
$sql = "create table ".$table."(";
|
||||||
|
$i=0;
|
||||||
|
foreach($fields as $field_name => $field_desc)
|
||||||
|
{
|
||||||
|
$sqlfields[$i] = $field_name." ";
|
||||||
|
$sqlfields[$i] .= $field_desc['type'];
|
||||||
|
if( eregi("^[^ ]",$field_desc['value']))
|
||||||
|
$sqlfields[$i] .= "(".$field_desc['value'].")";
|
||||||
|
else if( eregi("^[^ ]",$field_desc['attribute']))
|
||||||
|
$sqlfields[$i] .= " ".$field_desc['attribute'];
|
||||||
|
else if( eregi("^[^ ]",$field_desc['default']))
|
||||||
|
{
|
||||||
|
if(eregi("null",$field_desc['default']))
|
||||||
|
$sqlfields[$i] .= " default ".$field_desc['default'];
|
||||||
|
else
|
||||||
|
$sqlfields[$i] .= " default '".$field_desc['default']."'";
|
||||||
|
}
|
||||||
|
else if( eregi("^[^ ]",$field_desc['null']))
|
||||||
|
$sqlfields[$i] .= " ".$field_desc['null'];
|
||||||
|
|
||||||
|
else if( eregi("^[^ ]",$field_desc['extra']))
|
||||||
|
$sqlfields[$i] .= " ".$field_desc['extra'];
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
if($primary_key != "")
|
||||||
|
$pk = "primary key(".$primary_key.")";
|
||||||
|
|
||||||
|
if($unique_keys != "")
|
||||||
|
{
|
||||||
|
$i = 0;
|
||||||
|
foreach($unique_keys as $key => $value)
|
||||||
|
{
|
||||||
|
$sqluq[$i] = "UNIQUE KEY '".$key."' ('".$value."')";
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($keys != "")
|
||||||
|
{
|
||||||
|
$i = 0;
|
||||||
|
foreach($keys as $key => $value)
|
||||||
|
{
|
||||||
|
$sqlk[$i] = "KEY ".$key." (".$value.")";
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$sql .= implode(',',$sqlfields);
|
||||||
|
if($primary_key != "")
|
||||||
|
$sql .= ",".$pk;
|
||||||
|
if($unique_keys != "")
|
||||||
|
$sql .= ",".implode(',',$sqluq);
|
||||||
|
if($keys != "")
|
||||||
|
$sql .= ",".implode(',',$sqlk);
|
||||||
|
$sql .=") type=".$type;
|
||||||
|
// dolibarr_syslog($sql);
|
||||||
|
if(! $this -> query($sql))
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief décrit une table dans une database.
|
||||||
|
\param table Nom de la table
|
||||||
|
\param field Optionnel : Nom du champ si l'on veut la desc d'un champ
|
||||||
|
\return resource
|
||||||
|
*/
|
||||||
|
function DDLDescTable($table,$field="")
|
||||||
{
|
{
|
||||||
// $this->results = $this->query("DESC ".$table." ".$field);
|
// $this->results = $this->query("DESC ".$table." ".$field);
|
||||||
$this->results = $this->query("DESC ".$table." ".$field);
|
$this->results = $this->query("DESC ".$table." ".$field);
|
||||||
return $this->results;
|
return $this->results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\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 true/false selon si requête a provoqué un erreur mysql ou pas
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
if(! $this -> query($sql))
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001 Fabien Seisen <seisen@linuxfr.org>
|
/* Copyright (C) 2001 Fabien Seisen <seisen@linuxfr.org>
|
||||||
* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
*
|
*
|
||||||
@ -36,15 +36,15 @@
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\class DoliDb
|
\class DoliDb
|
||||||
\brief Classe permettant de gérér la database de dolibarr
|
\brief Classe permettant de gérér la database de dolibarr
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class DoliDb
|
class DoliDb
|
||||||
{
|
{
|
||||||
var $db; // Handler de base
|
var $db; // Handler de base
|
||||||
var $type='pgsql'; // Nom du gestionnaire
|
var $type='pgsql'; // Nom du gestionnaire
|
||||||
var $versionmin=array(8,1,0);
|
var $versionmin=array(8,1,0); // Version min database
|
||||||
|
|
||||||
var $results; // Resultset de la dernière requete
|
var $results; // Resultset de la dernière requete
|
||||||
|
|
||||||
@ -121,6 +121,7 @@ class DoliDb
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->database_selected = 0;
|
$this->database_selected = 0;
|
||||||
|
$this->database_name = '';
|
||||||
$this->ok = 0;
|
$this->ok = 0;
|
||||||
$this->error=$this->error();
|
$this->error=$this->error();
|
||||||
dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db");
|
dolibarr_syslog("DoliDB::DoliDB : Erreur Select_db");
|
||||||
@ -270,7 +271,12 @@ class DoliDb
|
|||||||
if (! eregi("^COMMIT",$query) && ! eregi("^ROLLBACK",$query))
|
if (! eregi("^COMMIT",$query) && ! eregi("^ROLLBACK",$query))
|
||||||
{
|
{
|
||||||
// Si requete utilisateur, on la sauvegarde ainsi que son resultset
|
// Si requete utilisateur, on la sauvegarde ainsi que son resultset
|
||||||
if (! $ret) $this->lastqueryerror = $query;
|
if (! $ret)
|
||||||
|
{
|
||||||
|
$this->lastqueryerror = $query;
|
||||||
|
$this->lasterror = $this->error();
|
||||||
|
$this->lasterrno = $this->errno();
|
||||||
|
}
|
||||||
$this->lastquery=$query;
|
$this->lastquery=$query;
|
||||||
$this->results = $ret;
|
$this->results = $ret;
|
||||||
}
|
}
|
||||||
@ -281,7 +287,7 @@ class DoliDb
|
|||||||
/**
|
/**
|
||||||
\brief Renvoie la ligne courante (comme un objet) pour le curseur resultset.
|
\brief Renvoie la ligne courante (comme un objet) pour le curseur resultset.
|
||||||
\param resultset Curseur de la requete voulue
|
\param resultset Curseur de la requete voulue
|
||||||
\return resource
|
\return resource
|
||||||
*/
|
*/
|
||||||
function fetch_object($resultset=0)
|
function fetch_object($resultset=0)
|
||||||
{
|
{
|
||||||
@ -290,66 +296,6 @@ class DoliDb
|
|||||||
return pg_fetch_object($resultset);
|
return pg_fetch_object($resultset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Next function are not required. Only minor features use them.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Renvoie l'id de la connection
|
|
||||||
\return string Id connection
|
|
||||||
*/
|
|
||||||
function getConnectId()
|
|
||||||
{
|
|
||||||
return '?';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Renvoie la commande sql qui donne les droits à user sur les tables
|
|
||||||
\param databaseuse 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\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)
|
|
||||||
{
|
|
||||||
$ret=$this->query('CREATE DATABASE '.$database.';');
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie les données dans un tableau.
|
\brief Renvoie les données dans un tableau.
|
||||||
\param resultset Curseur de la requete voulue
|
\param resultset Curseur de la requete voulue
|
||||||
@ -435,8 +381,8 @@ class DoliDb
|
|||||||
\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)
|
\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.
|
afin de retourner une donnée toujours au format universel date tms unix.
|
||||||
Fonction à utiliser pour générer les SELECT.
|
Fonction à utiliser pour générer les SELECT.
|
||||||
\param param
|
\param param Date au format text à convertir
|
||||||
\return date date au format tms.
|
\return date Date au format tms.
|
||||||
*/
|
*/
|
||||||
function pdate($param)
|
function pdate($param)
|
||||||
{
|
{
|
||||||
@ -469,7 +415,7 @@ class DoliDb
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie la derniere requete soumise par la methode query()
|
\brief Renvoie la derniere requete soumise par la methode query()
|
||||||
\return lastquery
|
\return lastquery
|
||||||
*/
|
*/
|
||||||
function lastquery()
|
function lastquery()
|
||||||
@ -478,14 +424,32 @@ class DoliDb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie la derniere requete en erreur()
|
\brief Renvoie la derniere requete en erreur
|
||||||
\return lastqueryerror
|
\return string lastqueryerror
|
||||||
*/
|
*/
|
||||||
function lastqueryerror()
|
function lastqueryerror()
|
||||||
{
|
{
|
||||||
return $this->lastqueryerror;
|
return $this->lastqueryerror;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Renvoie le libelle derniere erreur
|
||||||
|
\return string lasterror
|
||||||
|
*/
|
||||||
|
function lasterror()
|
||||||
|
{
|
||||||
|
return $this->lasterror;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Renvoie le code derniere erreur
|
||||||
|
\return string lasterrno
|
||||||
|
*/
|
||||||
|
function lasterrno()
|
||||||
|
{
|
||||||
|
return $this->lasterrno;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Renvoie le code erreur generique de l'operation precedente.
|
\brief Renvoie le code erreur generique de l'operation precedente.
|
||||||
\return error_num (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
|
\return error_num (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
|
||||||
@ -534,23 +498,82 @@ class DoliDb
|
|||||||
$nbre = pg_num_rows($result);
|
$nbre = pg_num_rows($result);
|
||||||
$row = pg_fetch_result($result,0,0);
|
$row = pg_fetch_result($result,0,0);
|
||||||
return $row;
|
return $row;
|
||||||
|
|
||||||
|
|
||||||
|
// Next function are not required. Only minor features use them.
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Renvoie l'id de la connection
|
||||||
|
\return string Id connection
|
||||||
|
*/
|
||||||
|
function getConnectId()
|
||||||
|
{
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Retourne le dsn pear
|
\brief Retourne le dsn pear
|
||||||
\return dsn
|
\return dsn
|
||||||
*/
|
*/
|
||||||
function getdsn($db_type,$db_user,$db_pass,$db_host,$db_name)
|
function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
|
||||||
{
|
{
|
||||||
return $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
|
||||||
|
*/
|
||||||
|
function DDLCreateDb($database)
|
||||||
|
{
|
||||||
|
$ret=$this->query('CREATE DATABASE '.$database.';');
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Liste des tables dans une database.
|
\brief Liste des tables dans une database.
|
||||||
\param database Nom de la database
|
\param database Nom de la database
|
||||||
\return resource
|
\return resource
|
||||||
*/
|
*/
|
||||||
function list_tables($database)
|
function DDLListTables($database)
|
||||||
{
|
{
|
||||||
$this->results = pg_query($this->db, "SHOW TABLES;");
|
$this->results = pg_query($this->db, "SHOW TABLES;");
|
||||||
return $this->results;
|
return $this->results;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user