Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выполнить подстановку, в запросе к БД 
:(
    Опции темы
Bulat
Дата 18.6.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Что-то я поковырялся, но так пока и не нашел решения.

Допустим у нас есть тривиальный запрос:

Код

SELECT t.id FROM t
WHERE t.id = ?


в данном случае все просто либо execute(5), либо bind_param(1,5)

Но если у меня запрос немного иной

Код

SELECT t.id FROM t
WHERE t.id in (?)


т.е. может быть и два и три значения внутри скобок. подставлять что-то типа join(',', @arr) - он сработает только на первый элемента массива. А execute_array и bind_param_array для этого не предназначены, вроде бы smile

Вообщем, пока так и не нашел решения, может кто сталкивался?? smile



--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
yura_nev
Дата 18.6.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



$sql = qq{SELECT t.id FROM t WHERE t.id in (?}.',?'x$#arr.qq{)} if(@arr);
... execute(@arr);
PM MAIL   Вверх
Bulat
Дата 18.6.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Цитата(yura_nev @  18.6.2008,  13:14 Найти цитируемый пост)
$sql = qq{SELECT t.id FROM t WHERE t.id in (?}.',?'x$#arr.qq{)} if(@arr);
... execute(@arr); 

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


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
ginnie
Дата 18.6.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

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



Уважаемый Bulat, к сожалению, с конструкцией IN () без вариантов, можете не искать.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
Bulat
Дата 18.6.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



ginnie, Да я в принципе знаю, но надеялся, что может кто-нить все-же как-нить... smile


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

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


 




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


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

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