[résolu]Vérifier existaence d'une clé primaire
Forum Programmation : [résolu]Vérifier existaence d'une clé primaire
salut, je voudrais, en php, voir si il existe une clé primaire définie dans une table mysql
je fais un describe matable mais ensuite je ne sais pas comment voir s'il y a une clé.
merci d'avance de votre aide
Message édité par mcpherson le 19-05-2009 à 16:55:41
Code :
|
Le PRI signifie Primaire.
Répondre à SiM07
merci beaucoup, si j'ai bien pigé voila :
$query1="DESCRIBE $nameTable";
$retour = mysql_query($query1) or die (mysql_error()."<br /><br />".$query1);
$cle_primaire = '';
while($donnees = mysql_fetch_array($retour))
{
if($donnees['key'] == 'PRI'){
$cle_primaire = $donnees['Field']; //Nom de la colonne
break;
}
}
if($cle_primaire!="" )
{
//ici il y a une clé primaire définie
}
else //ici pas de clé primaire
mais ça ne marche pas, j'ai essayé des affichages dans les if mais il ne trouve jamais de clé primaire alors que j'en ai mis en bdd, je tombe toujours dans le else
Message édité par mcpherson le 19-05-2009 à 16:39:12
Répondre à mcpherson
Pour fair ese genre de chose il est préférable d'utiliser la base de donnée "information_shema" elle est fait pour ça.
fait un print_r de $donnees :
Code :
|
Répondre à SiM07
hé c'est super bien ce truc!!
voila le résultat
Code :
|
donc pseudo est bien clé primaire, pourquoi il ne le trouve pas alors?
Répondre à mcpherson
Donc c'est pas $donnees['key'] mais $donnees['Key'] ...
au passage, remplace mysql_fetch_array par mysql_fetch_assoc car tu éviteras d'avoir en double ton tableau $donnees (array est la fusion de assoc et row).
Répondre à SiM07
| Citation : donc pseudo est bien clé primaire, pourquoi il ne le trouve pas alors? |
parce que je n'ai pas mis une majuscule à 'key'.
quelle journée!
merci de ton aide
Répondre à mcpherson
tu m'as devancé désolé!
ok pour la fonction
Répondre à mcpherson
Au passage, je ne sais pas où tu vas héberger ton application, mais fait attention d'avoir le droit de faire des describe ... tu pourrais avoir des surprises.
Répondre à SiM07
ça sera hébergé sur un serveur OVH, pourquoi?qu'est ce qu'elle a cette instruction describe de méchant?
Répondre à mcpherson
Ca comment à être des droits un peu avancé.
Le top pour une appli c'est de laisser juste les droits CRUD Soit : Create, Read (ou Retrieve), Update et Delete (ou Destroy). [src : Wikipedia]. On évite ainsi tout problème de sécurité. On peut même imaginer n'avoir que des droits en lecture ...
Après un passage il semble que tous les utilisateurs aient le droit d'effectuer un DESCRIBE, mais c'est absurde de laisser son schéma aussi visible.
Si tu veux un peu plus d'info sur le sujet, va voir du coté de PHPMyAdmin dans "Privilège", tu veras que tu peux creer des utilisateurs avec des droits différents. On ne mettera par exemple jamais des droits d'administration à une application web. (enfin, on le fait quand on met PHPMyAdmin mais bon, on met pas les droits n'importent comment aux gens qui y ont accès).
Répondre à SiM07
non mais l'application sera protégé par des sessions donc seul l'administrateur pourra faire ce genre de choses, les autres pouvant faire de la consultation
Répondre à mcpherson
Il y a 1438 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
