代码之家  ›  专栏  ›  技术社区  ›  Kelvin

Perl中的mysql查询参数问题

  •  4
  • Kelvin  · 技术社区  · 16 年前

    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 回复  |  直到 16 年前
        1
  •  7
  •   Quentin    16 年前

    使用占位符。不要乱动字符串连接。

    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;
    
        2
  •  5
  •   user180100    16 年前

    如何:

    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