我需要将包含新行的数据插入到文本列中。在进行常规插入时,我这样做的方式是... VALUES(E'Here comes a \\n new line)
在查询时产生以下内容:
Here Comes a
new line
但是,当使用准备好的语句时,例如:
my $sth = $dbh->prepare("INSERT INTO foo_table (foo_id, foo_bar_id, foo_text) VALUES (?, ?, ?)");
my @data = (1, 9999, "E'Here comes a \\n new line'");
$sth->execute(@data);
插入的数据实际上是E'Here comes a \n new line'
我尝试将我的值乱扔以插入各种\
以查看转义字符是否是问题,但如果是,我还没有找到正确的组合。谢谢你尽你所能的帮助。
EDIT2:原来我\
在使用准备好的语句时只需要一个。显然,在尝试所有更复杂的转义序列时,我忽略了最简单的解决方案。
编辑:下面的答案中提到的转义不会产生预期的结果。它Here comes a \n new line
在不被查询时产生
Here comes a
new line
就像使用E'...'
语法时一样