Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl中的Mysql查询参数问题_Mysql_Perl - Fatal编程技术网

Perl中的Mysql查询参数问题

Perl中的Mysql查询参数问题,mysql,perl,Mysql,Perl,我的代码中有一个小问题,如果我手动输入值,查询工作正常。但如果使用变量,则失败。代码如下所示 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 $me

我的代码中有一个小问题,如果我手动输入值,查询工作正常。但如果使用变量,则失败。代码如下所示

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 ...")
上面的方法不起作用

where meter_serial = ".$variable." AND ...")
非常感谢。

那么:

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

进一步使用占位符。不要摆弄字符串连接

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;

明确地说,我设置$variable=21001652;向自己证明<代码>使用数据::转储程序$数据::转储程序::Useqq=1;打印转储程序($variable)也许您可以说出“失败”是什么意思?没有选择任何内容?给了一个错误?什么错误?