Собственно, я по наивности считал, что единственный прямой вариант:
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