La fonction sql_alter()
permet d’envoyer une requête de type ALTER
au serveur de base de données pour modifier la structure de la base.
La fonction a 3 paramètres :
-
$q
est la requête (sans le terme "ALTER") a effectuer -
$serveur
, -
$option
Note : Cette fonction prenant directement une requête au format SQL, il est prudent de bien respecter les standards SQL. Il est possible que pour des prochaines versions de SPIP, le paramètre $q
accepte un tableau plus structuré en entrée pour faciliter les différents portages.
La fonction s’utilise comme suit :
sql_alter("TABLE table ADD COLUMN colonne INT");
sql_alter("TABLE table ADD colonne INT"); // COLUMN est optionnel
sql_alter("TABLE table CHANGE colonne colonne INT DEFAUT '0'");
sql_alter("TABLE table ADD INDEX colonne (colonne)");
sql_alter("TABLE table DROP INDEX colonne");
sql_alter("TABLE table DROP COLUMN colonne");
sql_alter("TABLE table DROP colonne"); // COLUMN est optionnel
sql_alter("TABLE spip_tradlang RENAME spip_tradlangs");
// possibilite de passer plusieurs actions, mais attention aux portages :
sql_alter("TABLE table DROP colonneA, DROP colonneB");
La fonction sql_alter()
sert particulièrement lors de la phase de mise à jour de plugins dans les fonctions {nom}_upgrade()
des différents plugins.