2
0
forked from Wavyzz/dolibarr

modif de create_table pour pouvoir ajouter des cls

This commit is contained in:
Andre Cianfarani
2006-03-16 12:41:26 +00:00
parent 23559e09f2
commit 3e62f38411

View File

@@ -333,10 +333,11 @@ class DoliDb
\param primary_key Nom du champ qui sera la clef primaire \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 unique_keys tableau associatifs Nom de champs qui seront clef unique => valeur
\param fulltext tableau des Nom de champs qui seront index<65>s en fulltext \param fulltext tableau des Nom de champs qui seront index<65>s en fulltext
\param key tableau des champs cl<63>s noms => valeur
\param type type de la table \param type type de la table
\return true/false selon si requ<71>te a provoqu<71> un erreur mysql ou pas \return true/false selon si requ<71>te a provoqu<71> un erreur mysql ou pas
*/ */
function create_table($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="") function create_table($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="")
{ {
// cl<63>s recherch<63>es dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra // cl<63>s recherch<63>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');
@@ -348,20 +349,24 @@ class DoliDb
$sqlfields[$i] .= $field_desc['type']; $sqlfields[$i] .= $field_desc['type'];
if( eregi("^[^ ]",$field_desc['value'])) if( eregi("^[^ ]",$field_desc['value']))
$sqlfields[$i] .= "(".$field_desc['value'].")"; $sqlfields[$i] .= "(".$field_desc['value'].")";
if( eregi("^[^ ]",$field_desc['attribute'])) else if( eregi("^[^ ]",$field_desc['attribute']))
$sqlfields[$i] .= " ".$field_desc['attribute']; $sqlfields[$i] .= " ".$field_desc['attribute'];
if( eregi("^[^ ]",$field_desc['null'])) else if( eregi("^[^ ]",$field_desc['default']))
$sqlfields[$i] .= " ".$field_desc['null']; {
if( eregi("^[^ ]",$field_desc['default']))
if(eregi("null",$field_desc['default'])) if(eregi("null",$field_desc['default']))
$sqlfields[$i] .= " default ".$field_desc['default']; $sqlfields[$i] .= " default ".$field_desc['default'];
else else
$sqlfields[$i] .= " default '".$field_desc['default']."'"; $sqlfields[$i] .= " default '".$field_desc['default']."'";
if( eregi("^[^ ]",$field_desc['extra'])) }
else if( eregi("^[^ ]",$field_desc['null']))
$sqlfields[$i] .= " ".$field_desc['null'];
else if( eregi("^[^ ]",$field_desc['extra']))
$sqlfields[$i] .= " ".$field_desc['extra']; $sqlfields[$i] .= " ".$field_desc['extra'];
$i++; $i++;
} }
$pk = "primary key(".$primary_key.")"; if($primary_key != "")
$pk = "primary key(".$primary_key.")";
if($unique_keys != "") if($unique_keys != "")
{ {
@@ -372,10 +377,22 @@ class DoliDb
$i++; $i++;
} }
} }
if($keys != "")
{
$i = 0;
foreach($keys as $key => $value)
{
$sqlk[$i] = "KEY ".$key." (".$value.")";
$i++;
}
}
$sql .= implode(',',$sqlfields); $sql .= implode(',',$sqlfields);
$sql .= ",".$pk; if($primary_key != "")
$sql .= ",".$pk;
if($unique_keys != "") if($unique_keys != "")
$sql .= ",".implode(',',$sqluq); $sql .= ",".implode(',',$sqluq);
if($keys != "")
$sql .= ",".implode(',',$sqlk);
$sql .=") type=".$type; $sql .=") type=".$type;
// dolibarr_syslog($sql); // dolibarr_syslog($sql);
if(! $this -> query($sql)) if(! $this -> query($sql))