sql_create

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"
	)
);

Auteur Matthieu Marcillaud Publié le : Mis à jour : 13/03/23

Traductions : English, français