代码之家  ›  专栏  ›  技术社区  ›  user6631314

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

  •  1
  • user6631314  · 技术社区  · 6 年前

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

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

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

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

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

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

    谢谢你的建议。

    2 回复  |  直到 6 年前
        1
  •  1
  •   BlobbyBob    6 年前

    该语句被解析两次:首先是PHP,然后是MySQL。 PHP取代 \n 使用换行符,但MySQL似乎忽略了这些空白字符。通过双重转义 \n个 \\n 你实现了 \n个 字符序列由MySQL解析并作为换行符插入。

        2
  •  1
  •   Mathan Kumar    6 年前

    嗨,你可以这样试试

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