如何使用perl将文本插入带引号的mysql中

时间:2011-05-26 07:09:29

标签: mysql perl

如何使用perl将文本插入带引号的mysql中? 插入包含'&的文本似乎很困难”。 我正在使用Perl DBI模块& DB是mysql。

更新:

这是我的查询

my $s = "INSERT INTO comment(guid,review_id) VALUES ('$guid','$review_id')";

2 个答案:

答案 0 :(得分:13)

您应该阅读man DBI

中的“Placeholders and Bind Values”部分

编辑:添加了示例

my $s = "insert into comment(guid,review_id) values (?, ?)";
$dbh->do( $s, undef, $guid, $review_id) or die $dbh->errstr;

答案 1 :(得分:9)

您的旧查询应该是这样的:

my $s = "insert into comment(guid,review_id) values ('$guid','$review_id')";
$dbh->do($s);

更好的方法,根据@ AlexD的答案使用占位符和绑定值,如下所示:

my $sth = $dbh->prepare("insert into comment(guid,review_id) values (?, ?)";);
$sth->execute($guid, $review_id);

要了解第一种方法的安全风险,请查看维基百科上的SQL injection attacks