【问题标题】:mySQL Query String in Perl does not seem to handle '\n'Perl 中的 mySQL 查询字符串似乎无法处理 '\n'
【发布时间】:2012-05-01 15:12:30
【问题描述】:

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

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

由于某种原因,\n 在 perl 中被视为换行符,并且似乎不会用 &lt;br/&gt; 替换它。这是我尝试打印$queryString时得到的结果

REPLACE(r.form_text,'

','< br /> ')

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

【问题讨论】:

标签: mysql perl


【解决方案1】:

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

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

请注意,q() 可以使用多种分隔符,在本例中,我使用了管道 |。如果你尝试打印这个字符串,它应该有一个文字\n。文档here

【讨论】:

  • 另一方面,即使使用文字换行符,查询仍应按预期工作......
  • 非常感谢@TLP。这是我今天学到的新东西。但它打印为 Select REPLACE(r.form_text,'\\n','
    ') FROM myTable r;不知道我在这里缺少什么。
  • 我也没有..当我尝试时,我得到\n
猜你喜欢
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
  • 2011-04-06
  • 2020-01-21
  • 1970-01-01
相关资源
最近更新 更多