Perl mysql mac地址错误

时间:2013-06-20 09:45:39

标签: mysql perl dbi

我有以下perl提取物:

$query = "INSERT INTO test (`MACADDR`) 
    VALUES ($MACADDR)";
    print $query,"\n";
    $db->do($query);

我在尝试插入mysql时遇到以下错误,我的mac地址是000E38F4E9CC:

DBD::mysql::db do failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0E38F4E9CC)' at line 2 at insertmac.pl line 156.

是perl mysql dbi能够插入mac地址吗? 我的其他记录可以正确插入,除了mac地址。

有什么想法吗? 感谢。

1 个答案:

答案 0 :(得分:2)

当您将字符串作为值传递时,需要引用它

  $query = "INSERT INTO test (`MACADDR`) 
VALUES ('$MACADDR')";

或者,您可以准备它并使用参数

 $query = "INSERT INTO test (`MACADDR`) 
VALUES (?)";

  my $q = $db->prepare($query);
  $q->execute($MACADDR);

这是一个更好的主意,因为您可以将其重用于速度并且还可以避免SQL注入攻击