Perl中的mySQL查询字符串似乎不处理'\ n'

时间:2012-05-01 15:12:30

标签: mysql perl

我正在尝试使用<br/>标记替换数据库中的换行符,并使用Perl编写以下mySQL查询字符串。

my $queryString = "Select REPLACE(r.form_text,'\n','<br /> '), ... FROM myTable r;"

出于某种原因,\n被视为来自perl内的换行符,似乎不会将其替换为<br/>。这是我在尝试打印$queryString

时得到的内容
REPLACE(r.form_text,'

','< br /> ')

我尝试使用\\n\\\n,但它也无效。如果这是一个重复的问题,我道歉。如果我在这里遗漏了什么,请告诉我。

1 个答案:

答案 0 :(得分:0)

当然你得到换行符。当您使用双引号引用字符串时,内插中的任何内容都会被插值,\n将成为文字换行符。如果你想要文字\n,你需要防止插值。通常,你会使用单引号,但这是不切实际的,因为你已经在字符串中有那些。因此,请使用q()功能。

my $queryString = 
    q|Select REPLACE(r.form_text,'\n','<br /> '), ... FROM myTable r;|;

请注意,您可以为q()使用各种分隔符,在这种情况下,我使用了管道|。如果您尝试打印此字符串,则应该有文字\n。文档here