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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как проще поменять названия таблиц 
:(
    Опции темы
len4ixa
Дата 26.11.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


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

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



В скрипте вызываются таблицы с бд, нужно поставить префикс перед ними. Но проблема: в бд это изменение 20 таблиц, а потом в скрипте изменения офигенного множетсва обращений. Как лучше и проще поменять названия бд?  
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
PM MAIL   Вверх
Pitlord
Дата 26.11.2009, 21:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Изначально скрипт должен проектироваться так, чтобы префикс или имена таблиц лежали в одном конфигурационном файле. Если это не так, то да, придётся как-то переписать SQL-запросы в скрипте — вручную или вспомогательным скриптом.
PM MAIL   Вверх
len4ixa
Дата 27.11.2009, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


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

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



Цитата

вспомогательным скриптом

 smile  smile 
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
PM MAIL   Вверх
Pitlord
Дата 27.11.2009, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Это сильно зависит от конкретного кода.
PM MAIL   Вверх
len4ixa
Дата 27.11.2009, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


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

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



Игра gladiators, все в tpl файле, подключаются функции. Что еще сказать?
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
PM MAIL   Вверх
nerezus
Дата 27.11.2009, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

Репутация: 12
Всего: 43



Цитата

Что еще сказать?
 Видимо, сумму ;)
Для вас это решение оптимально.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ипатьев
Дата 27.11.2009, 20:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 28
Всего: 37



странно. это это за запросы такие, которые лежат в tpl файле
PM MAIL   Вверх
Pitlord
Дата 27.11.2009, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(len4ixa @  27.11.2009,  20:30 Найти цитируемый пост)
Игра gladiators, все в tpl файле

SQL-запросы?
PM MAIL   Вверх
len4ixa
Дата 28.11.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


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

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



Цитата

SQL-запросы? 

Ну а какие еще, если я о таблицах говорю. Сори, в php запросы лежат, нету smarty и tpl, спать хотелось, когда писала)
Цитата

Видимо, сумму ;)

Суть в том, что у меня в целях не что-то создать, а чему-то научиться. Причем не ищу обучающих софистов.

Это сообщение отредактировал(а) len4ixa - 28.11.2009, 19:42
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
PM MAIL   Вверх
nerezus
Дата 28.11.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

Репутация: 12
Всего: 43



Цитата

Суть в том, что у меня в целях не что-то создать, а чему-то научиться.
 Тогда вопрос в топе не верный. Ага, мне лучше знать, просто прими это как факт.

Если хочешь научиться - то отпиши. Можешь в этой же теме. Я дам необходимый материал.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
len4ixa
Дата 28.11.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


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

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



Отписываюсь)) В топе все правильно, pit писал про проги, которые переделывают код, я попросила насчет этого подробнее...
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
PM MAIL   Вверх
nerezus
Дата 28.11.2009, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

Репутация: 12
Всего: 43



1) Рефакторинг автоматическими средствами не пойдет - все слишком сложно.
2) Если SQL-запросы в шаблонах, то код - полное ###.
3) Начни с книги Гутманса. На books.ru сейчас она стоит 150р. Ее хватит надолго.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Pitlord
Дата 28.11.2009, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(nerezus @  28.11.2009,  19:51 Найти цитируемый пост)
1) Рефакторинг автоматическими средствами не пойдет - все слишком сложно.

Тут всего лишь замена, поэтому как раз несложно.

Необходимо составить регулярное выражение, выцепляющее имена таблиц в SQL-запросах. Поэтому тут важен код. Мне лично его искать лень.

Код

<?php

function rec_preg_replace($pattern, $rep, $dir, $exception = array())
{
    if( @preg_match($pattern, '') === false )
        return;

    $dir = chop($dir, '/\\');

    $dh = opendir($dir);

    while( ( $file = readdir($dh) ) !== false )
    {
        if( $file == '.' || $file == '..' || in_array($file, $exception) )
            continue;

        if( is_file($dir . '/' . $file) )
        {
            $contents = file_get_contents($dir . '/' . $file);
            $contents = preg_replace($pattern, $rep, $contents);
            file_put_contents($dir . '/' . $file, $contents);
        }
        else
        {
            rec_preg_replace($pattern, $rep, $dir . '/' . $file, $exception);
        }
    }

    closedir($dh);
}

rec_preg_replace('/(?<=\\s|`)(таблица1|таблица2|таблица3)(?=\\s|`|.)/', '{$tbl_prefix}_\\0', './dir');
?>


Произойдёт замена "таблица1" на "{$tbl_prefix}_таблица1" во всех файлах директории dir. Конкретный пример расчитан на то, что SQL-запрос взят в двойные кавычки.

Потом остаётся написать в конфигурационном файле
Код

<?php

$tbl_prefix = 'my_prefix';

?>


Но для таких вещей надо перед вызовом этой функции обязательно делать копию скрипта, потому что эта функция может его попросту испортить при неправильном рег. выражении.
PM MAIL   Вверх
nerezus
Дата 28.11.2009, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

Репутация: 12
Всего: 43



Цитата

Необходимо составить регулярное выражение, выцепляющее имена таблиц в SQL-запросах. 
 Что же за ругулярак будет, которая предуспмотрит все варианты, в.т. числе и запросы, котрые строятся через работу со строками в несколько строк ;)
Полноценная реализация невозможна.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
len4ixa
Дата 28.11.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Твоя лучшая фантазия
*


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

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



Цитата

3) Начни с книги Гутманса. На books.ru сейчас она стоит 150р. Ее хватит надолго.

Цитата

Полноценная реализация невозможна.
 
Я о чем вообще говорю, мне прийдется либо вручную переписывать все префиксы, либо вот так, как pit предложил, переписать, а там уже доделаю вручную, если ошибки будут. Насчет книги, наверное почитаю в библиотеке потом, ну я не про это вопрос поднимала, а про посвящение в одну из методик решения поставленной задачи. По всей книжке это долго искать.  
--------------------
Кому интересно быть модером на бесплатнои хостинге (но не ломать его) и сделать из него хотя бы что-то, похожее на "нормальное", тому Сюда.Сайт брата: kras.24ss.ru. Регимся. 
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.0514 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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