Как автоматически добавить в SQL-запрос префиксы таблицам?

*
0
*
✩
Если одну базу использует несколько проектов, разумно делать всем таблицам префиксы, чтобы названия не перекрещивались. Подскажите алгоритм\регулярку, чтобы можно было всем таблицав SQL-запрове автоматически проставить указанный префикс.

upd: На PHP. То есть у нас есть строка типа:
SELECT * FROM table
или посложней с иннерами и всем прочим.

upd to Magz: Имена таблиц могут пересекаться, я ж не знаю, что там понапишет программер какого-нить модуля. Правда не знаю, к чему был вопрос...
sql префикс regexp
1 месяц 3 дня назад

#ссылка не по теме? tweet
А на каком уровне? На уровне формирования запросов в php или уже в самом MySQL? – Magz 1 месяц 2 дня назад
Достаточно странный вопрос, учитывая то, что первоначально таблицы и префиксы таблиц при грамотной организации указываются в виде конфигурации. И дальнейшая организация запросов происходит с помощью или конструкторов запросов или же попросту с учетом "переменных"-констант. – RayZ 1 месяц 2 дня назад
Ну конструктор запросов писать не охото, а константы постоянно подставлять не удобно. – V-z-z-HobboT 1 месяц 2 дня назад
А имена таблиц могут пересекаться или только имена полей? Т.е. возможен запрос вида SELECT * FROM table JOIN table ON ... ? – Magz 1 месяц 2 дня назад
2Magz: Написал для Вас апдейт. – V-z-z-HobboT 1 месяц 2 дня назад
комментировать



*
0
*
Вам нужно использовать в запросах какой-то плесхолдер, например SELECT * FROM #__table. и выполнять все запросы через какой-то единый метод/функцию. Сделайте например класс MyDB в нем статичный метод query(). Например:
class MyDB {
public static function query( $s ) {
$s = str_replace('#_', 'prefix', $s );
return mysql_query( $s );
}
}

Соотв. вызов <?php MyDB::query('SELECT * FROM #__table'); ?> будет преобразован в SELECT * FROM prefix_table;
#ссылка не по теме?
1 месяц 2 дня назад
dima
[171]
С таким же успехом я могу писать в запросе "select * from ".PREFIX."table", где define("PREFIX", "blablabla_"); – V-z-z-HobboT 1 месяц 2 дня назад
Комментировать

Ваш Ответ:



Ваш OpenID



Получить OpenID

Что такое OpenID?
или

Логин

Email

Пароль


Будет создана учетная запись и на email выслано письмо подтверждения.


новые ответы

Первый раз на сайте?

askdev.ru — это социальный сайт вопросов и ответов для IT-специалистов: программистов, веб-дизайнеров, системных администраторов.
о сайте » регистрация »

Показан

111 раз

Задан

1 месяц 3 дня назад

Теги

sql x 29
префикс x 2
regexp x 22
X

Пожалуйста, войдите:


Имя:
Пароль:
регистрация
Или используйте OpenID