Mysql вопрос параметр проблемы в Perl - PullRequest
4 голосов
/ 28 июня 2010

У меня небольшая проблема в коде, запрос работает нормально, если я вручную ввожу значения. Но не удается, если я использую свою переменную. Код показывает ниже

my $get_meter_id = $dbh->prepare("SELECT * from t_readings where meter_serial = '21001652' AND ...");
$get_meter_id->execute() or die "Couldn't execute statement: ".$get_meter_id->errstr;
my $meter_reg_id = $get_meter_id->fetchrow_array();

Над одним работает

where meter_serial = 21001652 AND ...")

Над одним работает.

where meter_serial = '".$variable."' AND ...")

выше не работает

where meter_serial = ".$variable." AND ...")

выше не работает

Большое спасибо.

Ответы [ 2 ]

7 голосов
/ 28 июня 2010

Использовать заполнители.Не возитесь с конкатенацией строк.

my $get_meter_id = $dbh->prepare("SELECT * from t_readings where meter_serial=? AND ...");
my $foo = 21001652;
$get_meter_id->execute($foo) or die "Couldn't execute statement: ".$get_meter_id->errstr;
5 голосов
/ 28 июня 2010

Как насчет:

my $get_meter_id = $dbh->prepare("SELECT * from t_readings where" .
     "meter_serial = ? AND ...");
$get_meter_id->execute($variable) or die "Couldn't execute statement: " . 
     $get_meter_id->errstr;
my $meter_reg_id = $get_meter_id->fetchrow_array();

далее чтение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...