Проверьте, существует ли таблица MySQL или нет.
Возможный дубликат:
MySQL проверяет, существует ли таблица без исключения исключения
У меня есть динамический построитель запросов mysql в моем проекте, который создает выборочные запросы из разных таблиц.
Мне нужно проверить, существует ли текущая таблица обработки или нет.
Представьте, что мои таблицы - table1, table2 и table3. Мой код выглядит примерно так:
<?php
for($i = 1 ; $i <= 3 ; $i++) {
$this_table = 'table'.$i;
$query = mysql_query("SELECT * FROM $this_table");
// ...
}
?>
Как я могу выполнить эту проверку (скажите, пожалуйста, самый простой способ).
Ответы
Ответ 1
Обновленная версия 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.
Ответ 2
Взято из другого сообщения
$checktable = mysql_query("SHOW TABLES LIKE '$this_table'");
$table_exists = mysql_num_rows($checktable) > 0;
Ответ 3
$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];
}
Ответ 4
$result = mysql_query("SHOW TABLES FROM $dbname");
while($row = mysql_fetch_row($result))
{
$arr[] = $row[0];
}
if(in_array($table,$arr))
{
echo 'Table exists';
}
Ответ 5
Вы можете попробовать это
$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";
Надеюсь, что это поможет!
Ответ 6
Используйте этот запрос, а затем проверьте результаты.
$query = 'show tables like "test1"';
Ответ 7
Способ MySQL:
SHOW TABLES LIKE 'pattern';
Также существует устаревшая функция PHP для перечисления всех таблиц db, взгляните на
http://php.net/manual/en/function.mysql-list-tables.php
Оформить эту ссылку, есть много полезной информации о комментариях там.