Dupliquer possible:
MySQL vérifie si une table existe sans lever d'exception
J'ai un constructeur de requête mysql dynamique dans mon projet qui crée des requêtes de sélection à partir de différentes tables.
Je dois vérifier si la table de traitement actuelle existe ou non.
Imaginez que mes tables soient table1, table2 et table3. Mon code est quelque chose comme ceci:
<?php
for($i = 1 ; $i <= 3 ; $i++) {
$this_table = 'table'.$i;
$query = mysql_query("SELECT * FROM $this_table");
// ...
}
?>
Comment puis-je faire cette vérification (S'il vous plaît dites-moi le moyen le plus simple).
Mise à jour de la version de mysqli:
if ($result = $mysqli->query("SHOW TABLES LIKE '".$table."'")) {
if($result->num_rows == 1) {
echo "Table exists";
}
}
else {
echo "Table does not exist";
}
Version originale de MySQL:
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1)
echo "Table exists";
else echo "Table does not exist";
Référencé à partir de PHP docs .
Tiré de un autre post
$checktable = mysql_query("SHOW TABLES LIKE '$this_table'");
$table_exists = mysql_num_rows($checktable) > 0;
$query = mysqli_query('SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME IN ("table1","table2","table3") AND TABLE_SCHEMA="yourschema"');
$tablesExists = array();
while( null!==($row=mysqli_fetch_row($query)) ){
$tablesExists[] = $row[0];
}
$result = mysql_query("SHOW TABLES FROM $dbname");
while($row = mysql_fetch_row($result))
{
$arr[] = $row[0];
}
if(in_array($table,$arr))
{
echo 'Table exists';
}
Tu peux essayer ça
$query = mysql_query("SELECT * FROM $this_table") or die (mysql_error());
ou ca
$query = mysql_query("SELECT * FROM $this_table") or die ("Table does not exists!");
ou ca
$query = mysql_query("SELECT * FROM $this_table");
if(!$query)
echo "The ".$this_table." does not exists";
J'espère que ça aide!
Utilisez cette requête, puis vérifiez les résultats.
$query = 'show tables like "test1"';
Façon MySQL:
SHOW TABLES LIKE 'pattern';
Il existe également une fonction obsolète PHP pour répertorier toutes les tables de base de données. Consultez http://php.net/manual/en/function.mysql-list-tables.php
Allez voir ce lien, vous y trouverez de nombreuses informations utiles sur les commentaires.