Возможный дубликат:
MySQL проверяет, существует ли таблица без исключения исключения
У меня есть динамический построитель запросов mysql в моем проекте, который создает выборочные запросы из разных таблиц.
Мне нужно проверить, существует ли текущая таблица обработки или нет.
Представьте, что мои таблицы – table1, table2 и table3. Мой код выглядит примерно так:
<?php for($i = 1 ; $i <= 3 ; $i++) { $this_table = 'table'.$i; $query = mysql_query("SELECT * FROM $this_table"); // ... } ?>
Как я могу сделать эту проверку (скажите, пожалуйста, самый простой способ).
Обновленная версия mysqli:
if ($result = $mysqli->query("SHOW TABLES LIKE '".$table."'")) { if($result->num_rows == 1) { echo "Table exists"; } } else { echo "Table does not exist"; }
Оригинальная версия mysql:
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1) echo "Table exists"; else echo "Table does not exist";
Ссылка из документов PHP .
Взято с другого поста
$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'; }
Вы можете попробовать это
$query = mysql_query("SELECT * FROM $this_table") or die (mysql_error());
или это
$query = mysql_query("SELECT * FROM $this_table") or die ("Table does not exists!");
или это
$query = mysql_query("SELECT * FROM $this_table"); if(!$query) echo "The ".$this_table." does not exists";
Надеюсь, поможет!
Используйте этот запрос, а затем проверьте результаты.
$query = 'show tables like "test1"';
Способ MySQL:
SHOW TABLES LIKE 'pattern';
Существует также устаревшая функция PHP для перечисления всех таблиц db, посмотрите http://php.net/manual/en/function.mysql-list-tables.php
Оформить эту ссылку, есть много полезной информации о комментариях.