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 ...")
上述方法无效
非常感谢。
答
使用占位符。不要小心字符串连接。
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
肯定,我设置$变量= 21001652; – Kelvin 2010-06-28 05:23:45
证明自己; '使用Data :: Dumper; $数据::自卸车:: Useqq = 1;打印Dumper($变量)' – ysth 2010-06-28 07:14:29
也许你可以说什么“失败”意味着什么?没有选择任何东西?给出了一个错误?什么错误? – ysth 2010-06-28 07:15:04