La fonction
sql_create()
permet de créer une table SQL selon le schéma indiqué.
Elle accepte 7 paramètres :
-*
$nom
est le nom de la table à créer
-*
$champs
est un tableau de description des colonnes
-*
$clefs
est un tableau de description des clefs
-*
$autoinc
: si un champ est clef primaire est numérique alors la propriété d’autoincrémentation sera ajoutée.
false
par défaut.
-*
$temporary
: est-ce une table temporaire ? par défaut :
false
-*
$serveur
,
-*
$option
Elle s’utilise comme ceci :
sql_create("spip_tables",
array(
"id_table" => "bigint(20) NOT NULL default '0'",
"colonne1"=> "varchar(3) NOT NULL default 'oui'",
"colonne2"=> "text NOT NULL default ''"
),
array(
'PRIMARY KEY' => "id_table",
'KEY colonne1' => "colonne1"
)
);
En règle général, pour un plugin, il vaut mieux déclarer la table SQL un utilisant les pipelines adéquats
declarer_tables_principales et
declarer_tables_auxiliaires, et utiliser les fonctions
creer_base()
ou
maj_tables('spip_tables')
lors de l’installation du plugin, qui appelleront si besoin
sql_create()
. Lire à ce titre le passage «
Mises à jour et installation des tables ».
Exemple
Exemple de création d’une table « spip_mots_tordus » qui serait une liaison avec « spip_tordus ». Remarquer la clé primaire composée des 2 colonnes :
sql_create("spip_mots_tordus",
array(
"id_mot" => "bigint(20) NOT NULL default '0'",
"id_tordu"=> "bigint(20) NOT NULL default '0'"
),
array(
'PRIMARY KEY' => "id_tordu,id_mot"
)
);