PHP / MYSQL:包含回车符或新行的UPDATE语句

时间:2018-03-17 14:47:10

标签: php mysql carriage-return

我有一些php脚本,它在mychar字段中的MYSQL中保存的字符串中添加了一个新行。

当我使用mysqladmin查看数据库时,我可以看到有多行的字段。它们不显示任何字符。无论创造新线路是什么都是看不见的。 enter image description here

但是,当我尝试使用包含额外行的字符串更新现有字符串时,使用\ n,它会将该字段更新为空。我猜这是因为mysql在更新语句中不接受\ n。

任何人都可以建议如何在PHP中准备一个字符串,以便在更新MYSQL中的字段时,它可以正确更新,即使用新行。 \ n似乎不起作用。

$sql = "UPDATE comments SET comment = 'firstline\nsecondline\nthirdline' WHERE id = 23"

运行上述语句时,它会更新该行,但注释字段为空。

感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

您好,您可以尝试这样

$data = 'firstline\nsecondline\nthirdline';
    $sql = "UPDATE comments SET comment = $data WHERE id = 23"

答案 1 :(得分:1)

该语句被解析2次:首先是PHP,然后是我的MySQL。 PHP用换行符替换\n,但MySQL似乎忽略了那些空白字符。通过双重转义\n\\n\n字符序列由MySQL解析并作为换行符插入。