Php 是否有明确的方法将换行符/特殊字符存储在MySQL文本单元格中?
这看起来像一个重复的问题,但所有答案都指向多个解决方案。这种情况是否仅限于偏好/用法 我已经和所有的选择兜圈子了。Php 是否有明确的方法将换行符/特殊字符存储在MySQL文本单元格中?,php,mysql,phpmyadmin,character-encoding,Php,Mysql,Phpmyadmin,Character Encoding,这看起来像一个重复的问题,但所有答案都指向多个解决方案。这种情况是否仅限于偏好/用法 我已经和所有的选择兜圈子了。 nl2br(插入前后)、stripsalashes、str\u replace、魔术引号 查看文本块时,我应该在phpmyadmin单元格中看到什么 这是一些文本 一些文本 这是一些文本一些文本 这是一些文本一些文本 这是一些文本\r\n一些文本 ? 简单地说,新行、特殊字符和引号都可以根据需要正确显示,无论是纯文本还是文本区域等。我仍然觉得我做得不对。首先,原则。数据库应被视为数
nl2br
(插入前后)、stripsalashes
、str\u replace
、魔术引号
查看文本块时,我应该在phpmyadmin单元格中看到什么
这是一些文本
一些文本
这是一些文本
一些文本
这是一些文本
一些文本
这是一些文本\r\n一些文本
?
简单地说,新行、特殊字符和引号都可以根据需要正确显示,无论是纯文本还是文本区域等。我仍然觉得我做得不对。首先,原则。数据库应被视为数据的存储库。不用于格式化 通过在
VARCHAR
/文本中使用
,您将其锁定为HTML页面
另一方面,在字符串中使用换行符是合理的。在这种情况下,只需这样做--\n
。然后,如果需要通过PHP在网页上显示它,请使用nl2br()
。如果您需要做一些不同的事情,您至少可以从简单且足够“标准”的事情开始,即单个字符\n
类似地,不要存储htmlentities(&…;
)。而是正确建立字符集并使用utf8mb4
。UTF-8被公认为当今大多数软件处理国际字符的“正确”方式。如果有什么东西偏离了它,那么至少有一个“标准”编码你开始
在生成INSERT
语句时,必须转义字符串(或使用prepare/bind)。这是所有涉及带引号字符串的语言都存在的事实。但是当选择数据时,您不需要执行任何类型的取消转义操作。。只需将它们存储为使用准备好的语句,并仅在输出到需要该语句的介质时对其进行转换/编码即可。