Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удалить столбец из таблицы MYSQL 
V
    Опции темы
neoks
Дата 11.9.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Делаю скрипт который добавляет столбцы к таблицы, но столкнулся с проблемой Duplicate column name 'ststus'
Вопрос как удалить столбец из таблицы перед тем как ее создать и как не добавлять столбец если он уже есть.

То есть я могу выбрать обновить таблицу или нет.
Что это значит:
1. Если указано обновить то скрипт должен удалить все столбцы перед тем как создать
2. Если не обновлять тогда пропустить те столбцы которые уже есть и продолжить дальше.

Сам скрипт: 

Код

                   foreach($tableSchema_add as $name => $table){
                        $table_add = 'ALTER TABLE ' . PREFIX . '_' .$name.' ADD';
                        
                        foreach($table as $key=>$val){
                            $table_add .= ' '.$key.(($val != '') ? ' '.$val.',': '');
                        }
                        
                        $table_add = substr($table_add,0,strlen($table_add) - 1);
                        
                        $db->query($table_add);
                    } 


Сам массив:
Код

$tableSchema_add['post'] = array(
    'status'=>"int(1) NOT NULL default '0'"
);


Знаю что это можно сделать, но в нете не чего не могу найти.
PM MAIL   Вверх
neoks
Дата 11.9.2011, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



А протупил на одном моменте, отключил вывод ошибки и нет проблем.
Теперь остался один вопрос, как удалить столбец из таблицы ?
PM MAIL   Вверх
Muerto
Дата 11.9.2011, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Проще всего зайти в phpmyadmin и удалить


--------------------
user posted image
PM MAIL   Вверх
neoks
Дата 11.9.2011, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Все сделал, пришлось немного повозится и перерыть куча сайтов чтоб найти.
Вот результат кому будет интересно.

Код

                   foreach($tableSchema_add as $name => $table){
                        
                        foreach($table as $key=>$val){
                            $table_add = '';
                            $drop_add  = '';
                            
                            if($_POST['mysql'] == 'create'){
                                $drop_add = 'ALTER TABLE ' . PREFIX . '_' .$name.' DROP '.$key;
                                
                                $db->query($drop_add,false);
                            }
                            
                            $table_add = 'ALTER TABLE ' . PREFIX . '_' .$name.' ADD '.$key.' '.$val;
                            
                            $db->query($table_add,false);
                        }
 
                    }

PM MAIL   Вверх
Absinthe
Дата 11.9.2011, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Цитата

Все сделал, пришлось немного повозится и перерыть куча сайтов чтоб найти.
 А просто мануал прочесть не проще было?
PM MAIL   Вверх
neoks
Дата 11.9.2011, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



 А просто мануал прочесть не проще было
Проще, вопрос где достать этот мануал ?
PM MAIL   Вверх
Absinthe
Дата 11.9.2011, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.