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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление префиксов к запросам, mysql 
:(
    Опции темы
SneG0K
Дата 19.10.2010, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


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

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



Ребята, есть такая проблема: поступила ко мне на днях CMS.
Нужно к каждому запросу добавить префикс к имени таблицы.

Вопрос: есть ли какая-нить регулярка или функция, которая этим занимается?

Интересуют основные типы запросов (Select, insert, update, delete)

В запросе может быть указана как одна таблица так и несколько.

Добавлено @ 21:27
Да, сразу скажу, что менять более чем 15 тысяч запросов как-то не охота.

Это сообщение отредактировал(а) SneG0K - 20.10.2010, 02:11
PM WWW Skype   Вверх
bars80080
Дата 20.10.2010, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



а там разве не используется некий класс, обработчик?
PM MAIL WWW   Вверх
SneG0K
Дата 20.10.2010, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


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

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



Да, действительно забыл указать.
Есть некий класс. В нем есть метод типа
Код

public function execute($sql)
{
    // Здесь надо подменить запрос
    return $this->connection->execute($sql);
}

PM WWW Skype   Вверх
SneG0K
Дата 20.10.2010, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


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

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



Решил составить регулярки
Выделил три группы SELECT запросов
Код

SELECT * FROM table WHERE ...

SELECT * FROM table a, another b WHERE ...

SELECT * FROM table a, another b, third c WHERE ...

При чем WHERE может как присутствовать так и отсутствовать.
Помогите составить общее регулярное выражение, которое заменит имена таблиц на эти-же имена только с префиксами.
Для INSERT, DELETE, UPDATE уже составил.
А вот для SELECT пока затрудняюсь.
PM WWW Skype   Вверх
SneG0K
Дата 26.10.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


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

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



Ну так как?
PM WWW Skype   Вверх
DeamonShan
Дата 28.10.2010, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как вариант, выловить error - ы, там указаны имена таблиц, которые не существуют, извлеч имя таблицы из error-а и добавить префикс...

Добавлено @ 17:10
Еще вариант, запросить из базы все существующие таблицы, проверить строку запроса на вхождение из списка таблиц, далее вхождение заменить...

я не думаю, что названия таблиц могут совпадать с названиями полей таблиц...

Это сообщение отредактировал(а) DeamonShan - 28.10.2010, 17:12
PM MAIL   Вверх
DeamonShan
Дата 28.10.2010, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кстати, как называется ваш класс?
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.0908 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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