vérifier l'existence d'une table dans une bdd mysql. - PHP - Programmation
Marsh Posté le 02-10-2002 à 17:48:05
LexTuhor a écrit a écrit : tout est dans le titre... C'est possible ? |
parmis les mysql_* il y en a une qui te donne la liste des tables existantes dans une base donnée.
A partir de là, il sufit de chercher si celle que tu cherches fait partie de la liste.
JE sais plus quelle est la bonne fonction alors je te laisse la rechercher. (va voir sur www.nexen.net si t'as pas de doc chez toi)
Marsh Posté le 02-10-2002 à 17:55:21
Tu peux aussi passer la requête 'SHOW tables', et parcourir le résultat comme si c'était un select.
Marsh Posté le 02-10-2002 à 18:17:57
mrbebert a écrit a écrit : Tu peux aussi passer la requête 'SHOW tables', et parcourir le résultat comme si c'était un select. |
Tiens, je la conaissais pas celle là.
Marsh Posté le 02-10-2002 à 19:41:36
Bon, j'en suis là :
$sql = "SHOW TABLES FROM ma_bdd";
$req = mysql_query($sql) or die('erreur sql !<br>'.$sql.'<br>'.mysql_error());
à partir de là, comment afficher la liste des tables ???
J'y arrive po.
Marsh Posté le 02-10-2002 à 19:51:12
Tu sais parcourir le résutat d'un select avec mysql_fetch_array ?
Ben c'est pareil
Marsh Posté le 02-10-2002 à 19:56:59
Ben oui, je sais, mais là je dois mettre quoi ???
while($data = mysql_fetch_array($req)){
echo $data['table'];
}
ça ??
ça marche pas Comment je peux avoir une chaine de caractère contenant le nom des tables présentes sur la BDD ?
De plus, j'ai également essayer ça :
$sql = "SHOW TABLES FROM ma_bdd WHERE TABLES=tablerecherchée ";
$req = mysql_query($sql) or die('erreur sql !<br>'.$sql.'<br>'.mysql_error());
Et ça renvoie une erreur.
Bref, je galère bien...
Je pourrais aussi chercher une valeur et en cas d'erreur déduire que ma table n'existe pas, mais c'est bourrin et j'aimerais bien REELLEMENT tester l'existence de ma table.
Marsh Posté le 02-10-2002 à 20:06:44
C'est peut être le nom de la colonne qui va pas. Essaie avec :
while ($data = mysql_fetch_row($req)) {
echo $data[0];
}
Marsh Posté le 02-10-2002 à 17:27:09
tout est dans le titre... C'est possible ?