Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有明确的方法将换行符/特殊字符存储在MySQL文本单元格中?_Php_Mysql_Phpmyadmin_Character Encoding - Fatal编程技术网

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)。这是所有涉及带引号字符串的语言都存在的事实。但是当
    选择
    数据时,您不需要执行任何类型的取消转义操作。

    。只需将它们存储为使用准备好的语句,并仅在输出到需要该语句的介质时对其进行转换/编码即可。