Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   ALTER TABLE ADD (https://javascript.ru/forum/server/18736-alter-table-add.html)

korner 13.07.2011 15:02

ALTER TABLE ADD
 
Попытаюсь максимально объяснить так как на прошлом форуме ответа я не дождался.

В чем суть, есть движок у которого есть встроенный маркет где можно купить модуль или загрузить бесплатно.
Так вот у многих модулях есть SQL запрос который может создать таблицу или обновить в MYSQL.

С созданием нет проблем, но есть проблема когда нужна к таблицы например table добавить пару ячеек например d1 и d2.

Пример:
$db->query('ALTER TABLE `table` ADD d1 varchar(200)');


С первым разом все идет глатко не каких проблем, но что если пользователь установит повторно модуль.

Мне сейчас нужен какой та метод который бы проверял ячейки d1 и d2 на существования и пропускал если уже существуют во избежания ошибок.

Пока не знаю как сделать правильно, сделать через SQL запрос или нужно делать методом php.

Через SQL я имею введу запрос который я приблизительно нашол.

if exists Но не знаю как с ним работать и как правильно написать.

Пожалуйста не направлять на поис или на манулы, я там уже был и не чего не нашол.

Пожалуйста покажите как правильно это сделать или объясните по подробнее с примерами.

ksa 13.07.2011 15:08

korner, любой запрос, обратившийся к несуществующим полям таблицы, вылетит в ошибку...

Гораздо продуктивнее такие проверки делать серверным языком.

walik 13.07.2011 15:14

$res = $db->query("select column_name from INFORMATION_SCHEMA.columns where table_name = 'MyTable' and column_name = 'MyColumn'");
if (!$res->num_rows) {
	$db->query('ALTER TABLE `MyTable` ADD MyColumn varchar(200)');
}

korner 13.07.2011 15:25

walik
Огромное спасибо тебе!! Неужели есть хоть кто то кто может помочь.


Часовой пояс GMT +3, время: 20:55.