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

Man*_*nde 5 mysql perl

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

更新:

这是我的查询

my $s = "INSERT INTO comment(guid,review_id) VALUES ('$guid','$review_id')";
Run Code Online (Sandbox Code Playgroud)

小智 13

您应该阅读" 占位符和绑定值 "部分man DBI

编辑:添加示例

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

  • 绝对.它不仅更容易编码; 它也更快,更安全. (3认同)

Tom*_*haw 9

您的旧查询将是这样的:

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

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

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

要了解第一种方法的安全风险,请查看Wikipedia 上的SQL注入攻击.