Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 25 Май, 2012, 05:04:58

Страниц: [1] 2
Печать
Автор Тема: MySQL. Как проверить существует ли таблица в бд?  (Прочитано 581 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Tekuto    ↓ 
18 Октябрь, 2011, 03:35:51
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 0
Сообщений: 1229
Сила слова: 0

Необходимо перед выполнением скрипта проверить наличие таблицы в базе данных. Если она существует, то добавляем записи, если нет, то выдает сообщение об отсутствии таблицы в бд. Ползал по гуглу: советует проверять данные в таблице. Как быть, если нет данных в таблице?
Записан

Just a man and his will to survive
Stasovsky    ↓ 
18 Октябрь, 2011, 03:40:41 , спустя 4 минуты 50 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3654
Сила слова: 1.48

if (mysql_query('DROP TABLE таблица')) echo "таблица существовала"; XD
Записан
Tekuto    ↓ 
18 Октябрь, 2011, 03:43:47 , спустя 3 минуты 6 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 0
Сообщений: 1229
Сила слова: 0


if (mysql_query('DROP TABLE таблица')) echo "таблица существовала"; XD

Это тоже видел. Мне не подходит XD
Записан

Just a man and his will to survive
Frozzeg    ↓ 
18 Октябрь, 2011, 03:45:57 , спустя 2 минуты 10 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5501
Сила слова: 1.67

оно разве ошибку не выдаст при запросе в отсутствующую таблицу?
Записан
Tekuto    ↓ 
18 Октябрь, 2011, 03:53:26 , спустя 7 минут 29 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 0
Сообщений: 1229
Сила слова: 0

оно разве ошибку не выдаст при запросе в отсутствующую таблицу?
Ничего не выдает) Если таблица отсутствует или количество записей равно нулю в таблице, то скрипт не исполняется.
Записан

Just a man and his will to survive
phpdude    ↓ 
18 Октябрь, 2011, 03:56:12 , спустя 2 минуты 46 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

выполняй запрос на создание всегда да и все.
 
условный конечно :-)
 
аля
 
SQL
CREATE TABLE IF NOT EXISTS t1 (c1 CHAR(10)) SELECT 1, 2;
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Tekuto    ↓ 
18 Октябрь, 2011, 03:59:13 , спустя 3 минуты 1 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 0
Сообщений: 1229
Сила слова: 0

Дело в том, что мне не нужно создавать таблицу. Она должна быть уже создана. Если ее нет, то скрипт должен прекратить работу. Если она есть, то вводим данные.
Записан

Just a man and his will to survive
phpdude    ↓ 
18 Октябрь, 2011, 04:04:00 , спустя 4 минуты 47 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

ну блин сделай
SQL
SHOW TABLES LIKE 'tablename'

и в результатах проверь на точное совпадение искомой
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Tekuto    ↓ 
18 Октябрь, 2011, 04:05:29 , спустя 1 минуту 29 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 0
Сообщений: 1229
Сила слова: 0

Хорошо. Спасибо большое.
Записан

Just a man and his will to survive
Nyaah    ↓ 
18 Октябрь, 2011, 04:08:56 , спустя 3 минуты 27 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 34
Сообщений: 522
Сила слова: 6.51

Если только mysql, то можно так проверить:
SQL
USE database_name;
SHOW TABLES WHERE `Tables_in_database_name`='table_name';
Если результат пустой, то нету, если не пустой, то таблица существует.
Записан

Work, buy, consume, die
phpdude    ↓ 
18 Октябрь, 2011, 04:16:03 , спустя 7 минут 7 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

Nyaah, ога. тоже самое что и лайк по сути)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Tekuto    ↓ 
18 Октябрь, 2011, 04:26:11 , спустя 10 минут 8 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 0
Сообщений: 1229
Сила слова: 0

Nyaah, тоже спасибо. Уже последовал совету phpdude. Вроде работает, спасибо.
 
PHP

 
$myrows = count($wpdb->query("SHOW TABLES LIKE 'wp_wpsc_region_tax' "));
if ( $myrows == 1 ) {
    ...
} else {
    ...
}
 
 

Вот, что изобразил. Что скажете? Пойдет?
Записан

Just a man and his will to survive
Ivan    ↓ 
18 Октябрь, 2011, 04:37:09 , спустя 10 минут 58 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

Число таблиц не должно зависеть от программы. Ты установщик что ли создаешь? Если да, то как сказал phpdude, если нет - меняй подход, потому что он неправильный
Записан

Tekuto    ↓ 
18 Октябрь, 2011, 04:51:46 , спустя 14 минут 37 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 0
Сообщений: 1229
Сила слова: 0

Пишу плагин для wordpress, который добавляет данные в таблицу, которую в свою очередь добавляет другой плагин (wp e-commerce).
Записан

Just a man and his will to survive
master    ↓ 
18 Октябрь, 2011, 06:06:54 , спустя 1 час 15 минут 8 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

select * from `table` limit 1
 
проверить на ошибку. годится для любой SQL-бд
Записан

Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd