[Moscow.pm] bind_value

Dmitry Karpich meettya на gmail.com
Ср Май 18 13:24:07 PDT 2011


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

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 <yury.zavarin на gmail.com>
> Ой, прошу прощения, не на тот вопрос ответил. Думал, что речь идет про один параметр.
> 
> 
> 2011/5/18 Yury Zavarin <yury.zavarin на gmail.com>
> Не нашел в документации метода 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 Василий Рябов <me на ryvasy.net>
> Всем привет
> 
> Столкнулся с дурацкой проблемой и не могу найти в документации решение.
> Мне нужно выполнить запрос с условием "field in ( ? )".
> $sth->bind_value( 1, $args ) подставляет значение $args в плейсхолдер заключенным в кавычки, что не правильно - MySQL из-за этого среди одного значения, а не среди множества.
> 
> Как можно выкрутиться, кроме как передав строку $args в запрос при его подготовке? В частности можно ли как-то заставить bind_value подставлять значение без кавычек, as is?
> 
> Заранее спасибо.
> -- 
> Василий Рябов,
> me на ryvasy.net
> -- 
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> 
> 
> 
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> 
> 
> 
> 
> -- 
> С уважением,
>  Анатолий Шарифулин.
> -- 
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110519/32a57b27/attachment.html>


Подробная информация о списке рассылки Moscow-pm