Perl中的Mysql查询参数问题

问题描述:

在我的代码中遇到了一些问题,如果我手动将值放入,查询工作正常。但如果我使用我的变量则失败。该代码显示如下Perl中的Mysql查询参数问题

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 ...") 

上述方法无效

非常感谢。

+0

肯定,我设置$变量= 21001652; – Kelvin 2010-06-28 05:23:45

+1

证明自己; '使用Data :: Dumper; $数据::自卸车:: Useqq = 1;打印Dumper($变量)' – ysth 2010-06-28 07:14:29

+1

也许你可以说什么“失败”意味着什么?没有选择任何东西?给出了一个错误?什么错误? – ysth 2010-06-28 07:15:04

使用占位符。不要小心字符串连接。

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; 

什么:

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(); 

进一步reading