如何在perl中引用查询字符串?

时间:2012-02-16 04:05:40

标签: mysql perl perl-module

我需要将大字符串与mysqlDB中列的字段进行匹配。

之类的东西

%ERROR-kkl_ub {} :(来自YAMios):目的地(名称= sdasdays.s0sda.rindasdth.sbo98.sbssdao_sad)未注册。

它包含很多特殊字符,我不能尝试为每个字符做一个\因为会有数百个独特的签名。

需要帮助......

1 个答案:

答案 0 :(得分:5)

在perl中,我们使用单引号字符的文字引号或q运算符,它用于引用通常可能具有正常引号字符的文字字符串。 q(和插值字符串的qq)允许下一个字符是边界引号字符(类似于m和s正则表达式运算符)。

my $var1 = 'this is a "literal" string';
my $var2 = "this is an \"interpolated\" string";
my $var3 = q/this is a "literal" 'string'/;
my $var4 = q{another literal string};
my $var5 = qq/interpolated string, previous one was '$var2'/;

如果您担心将字符串转换为SQL查询(我承认我发现您的措辞有点混乱),请使用绑定变量。

my $dbh = DBI->connect( ... );
my $sth = $dbh->prepare('SELECT * FROM table WHERE id = ? OR string_field = ?');
my $rv = $sth->execute(1425, $var5);

有关详细信息,请参阅DBI perldoc。