2012-05-01 18 views
0

我试图用<br/>标签替换数据库中的换行符,并使用Perl编写的以下mySQL查询字符串。mySQL在Perl中的查询字符串似乎并不处理' n'

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

出于某种原因,\n是Perl中视为一个换行符从似乎并没有与<br/>来取代它。下面是我得到了什么,当我试图打印$queryString

REPLACE(r.form_text,' 

','< br /> ') 

我试图用\\n\\\n,它也不能工作。如果这是一个重复的问题,我很抱歉。请让我知道,如果我在这里失去了一些东西。

+0

http://stackoverflow.com/questions/2902888/adding-a-line-break-in-mysql-insert-into-text – ethrbunny

回答

0

当然,你会得到一个换行符。当你使用双引号来引用一个字符串时,它里面的任何东西都会被插入,并且\n将变成一个字面换行符。如果你想要一个文字\n,你需要防止插值。通常,你会使用单引号,但这是不切实际的,因为你已经在字符串中有这些。相反,请使用q()功能。

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

注意,您可以使用各种各样的分隔符为q(),在这种情况下,我用管|。如果你尝试打印这个字符串,它应该有一个文字\n。文档here

+0

另一方面,即使使用文字,查询仍应该按预期工作换行... – eggyal

+0

非常感谢@TLP。这是我今天学到的新东西。但它会打印为Select REPLACE(r.form_text,'\\ n','
')FROM myTable r;不知道我在这里错过了什么。 – script3man

+0

我都没有。当我尝试它时,我得到了'\ n'。 – TLP