我有以下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地址。
有什么想法吗? 感谢。
答案 0 :(得分:2)
当您将字符串作为值传递时,需要引用它
$query = "INSERT INTO test (`MACADDR`)
VALUES ('$MACADDR')";
或者,您可以准备它并使用参数
$query = "INSERT INTO test (`MACADDR`)
VALUES (?)";
my $q = $db->prepare($query);
$q->execute($MACADDR);
这是一个更好的主意,因为您可以将其重用于速度并且还可以避免SQL注入攻击