OVH Cloud OVH Cloud

Mise a jour ENUM avec PHP

2 réponses
Avatar
Moustique
Bonjour,

Je cherche depuis plusieurs jours à faire une mise à jour d'un champs ENUM dans une table MySLQ. Pour l'instant, j'ai
développer une fonction qui ne fonctionne pas!!!


// $champ est le nom du champs ENUM
// $name est de type array

function update_emun($table, $champ, $name){
list($default,$autres)=explode(",",$name);
$requete = "ALTER TABLE $table CHANGE $champ $champ ENUM($name ) DEFAULT '$default' NOT NULL";
$result = mysql_query($requete);
}


Mon problème se situe au niveau de ENUM ($name). Il devrais se présenter sous forme de ENUM 'un','deux','trois') et je
ne vois pas comment arriver à créer cette partie de la requête.

Merci de m'éclairer sur cet épineux problème.


Moustique
La souplesse d'esprit permet de s'adapter dans toutes circonstances.

www.velo-passion.com pour les fans de vélo
http://www.lapassade.ch pour les fans de théâtre

2 réponses

Avatar
P'tit Marcel
Moustique écrivit:

Je cherche depuis plusieurs jours à faire une mise à jour d'un champs
ENUM dans une table MySLQ. Pour l'instant, j'ai développer une
fonction qui ne fonctionne pas!!!


// $champ est le nom du champs ENUM
// $name est de type array

function update_emun($table, $champ, $name){
list($default,$autres)=explode(",",$name);


si $name est un tableau alors on ne peut pas utiliser explode dessus.

$requete = "ALTER TABLE $table CHANGE $champ $champ ENUM($name )
DEFAULT '$default' NOT NULL"; $result = mysql_query($requete);



plutôt :

$requete ="... ENUM('" . implode("','" , $name)
. "') DEFAULT('" . $name[0] . "')";

(on peut aussi faire un array_shift($name) à la place de $name[0] si on ne
connaît pas la clé de 1° valeur).

--
P'tit Marcel
statistiques sur les forums modérés : http://www.centrale-lyon.org/ng/

Avatar
vincent zo
euh dans la premiere ligne tu as ecrit:
EMUN et pas ENUM
Vérifie

Vince