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

| 如何使用perl将文本插入带有引号的mysql中? 插入包含''和\'的文本似乎很困难。 我正在使用Perl DBI模块,而DB是mysql。 更新: 这是我的查询
my $s = \"INSERT INTO comment(guid,review_id) VALUES (\'$guid\',\'$review_id\')\";
    
已邀请:
您的旧查询可能是这样的:
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);
要了解您的第一种方法的安全风险,请查看Wikipedia上的SQL注入攻击。     
您应该阅读
man DBI
中的“占位符和绑定值”部分 编辑:添加示例
my $s = \"insert into comment(guid,review_id) values (?, ?)\";
$dbh->do( $s, undef, $guid, $review_id) or die $dbh->errstr;
    

要回复问题请先登录注册