Собственно, я по наивности считал, что единственный прямой вариант:

my $sth = $dbh->prepare("SELECT foo FROM foo WHERE id IN (" . join(',', map 
{'?'} @docs) . ")");
$sth->execute(@docs);

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

Митяй.


On May 18, 2011, at 10:49 PM, Анатолий Шарифулин wrote:

> Всё просто, генерить надо IN вручную, каждый элемент пропустить через quote, 
> НО если нет параметров, то NULL.
> 
> У меня это делает DBI::Util, скоро выложу :)
> 
> 
> 2011/5/18 Yury Zavarin <[email protected]>
> Ой, прошу прощения, не на тот вопрос ответил. Думал, что речь идет про один 
> параметр.
> 
> 
> 2011/5/18 Yury Zavarin <[email protected]>
> Не нашел в документации метода bind_value.
> Но вот мне когда нужно было однажды так сделать, я делал так:
>  $sth->bind_param($pnum, $value, { TYPE => SQL_INTEGER });
> 
> P. S. Тут важно понимать, что если начал пользоваться bind_param, то нужно 
> его вызвать для всех placeholder'ов, т. е. для тех, которые должны быть в 
> кавычках, нужно вызывать просто
> $sth->bind_param($another_pnum, $another_value);
> 
> 
> 
> 2011/5/18 Василий Рябов <[email protected]>
> Всем привет
> 
> Столкнулся с дурацкой проблемой и не могу найти в документации решение.
> Мне нужно выполнить запрос с условием "field in ( ? )".
> $sth->bind_value( 1, $args ) подставляет значение $args в плейсхолдер 
> заключенным в кавычки, что не правильно - MySQL из-за этого среди одного 
> значения, а не среди множества.
> 
> Как можно выкрутиться, кроме как передав строку $args в запрос при его 
> подготовке? В частности можно ли как-то заставить bind_value подставлять 
> значение без кавычек, as is?
> 
> Заранее спасибо.
> -- 
> Василий Рябов,
> [email protected]
> -- 
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
> 
> 
> 
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
> 
> 
> 
> 
> -- 
> С уважением,
>  Анатолий Шарифулин.
> -- 
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить