Да, при пустом массиве @values лучше возвращать либо undef, и отрабатывать
спец. случай, либо апдейтить @values, добавив в него undef, и возвращать
массив из одного плейсхолдера.

18 мая 2011 г. 21:29 пользователь Akzhan Abdulin
<[email protected]>написал:

> Чутка позабыл перл за отпуск, но вроде делал так:
>
> $placeholders = join ',', map { '?' } @values
> $sql = "... WHERE field IN ($placeholders)"
>
> Генерацию такой строки можно вынести в утилиты, чтобы не писать однотипный
> join-map.
>
> 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

Ответить