44 votes

Comment puis-je vérifier si une table MySQL existe avec PHP ?

Aussi simple en théorie que cela puisse paraître, j'ai fait pas mal de recherches et j'ai du mal à comprendre cela.

Comment puis-je vérifier si une table MySQL existe et si elle fait quelque chose. (Je suppose qu'une simple instruction php if/else pourrait fonctionner pour cela)

Y a-t-il un moyen de faire cela?

Voici ce que j'ai fait avec la réponse de cwallenpoole :

 mysql_connect("SERVER","USERNAME","PASSWORD");
mysql_select_db('DATABASE');

$val = mysql_query('select 1 from `TABLE`');

if($val !== FALSE)
{
   print("Exists");
}else{
   print("Doesn't exist");
}

35voto

Aleksey Korzun Points 415

Le moyen le plus propre d'y parvenir en PHP consiste simplement à utiliser l'instruction DESCRIBE.

 if ( mysql_query( "DESCRIBE `my_table`" ) ) {
    // my_table exists
}

Je ne sais pas pourquoi d'autres publient des requêtes compliquées pour un problème aussi simple.

Mettre à jour

Utilisation de l'AOP

 // assuming you have already setup $pdo
$sh = $pdo->prepare( "DESCRIBE `my_table`");
if ( $sh->execute() ) {
    // my_table exists
} else {
    // my_table does not exist    
}

14voto

Nathan Romano Points 2024
$res = mysql_query("SELECT table_name FROM information_schema.tables WHERE table_schema = '$databasename' AND table_name = '$tablename';");

Si aucun enregistrement n'est renvoyé, il n'existe pas.

10voto

dynamic Points 16778
mysql_query("SHOW TABLES FROM yourDB");
//> loop thru results and see if it exists
//> in this way with only one query one can check easly more table 

ou mysql_query("SHOW TABLES LIKE 'tblname'");

N'utilisez pas mysql_list_tables(); car c'est obsolète

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X