【发布时间】:2014-09-06 20:36:23
【问题描述】:
我的 mysql 数据库中有一个名为 eol(类型:varchar)的字段。
我在 PHPMyAdmin 中将其设置为默认 \r\n。
如果我使用 PDO 执行 SELECT,我不会收到真正的换行符。
如果我像这样 var_dump 我的结果:
var_dump(unpack('C*',$eol));
结果是:
array(4) {
[1]=> int(92)
[2]=> int(114)
[3]=> int(92)
[4]=> int(110)
}
其实是这样的:
- [反斜杠]
- r
- [反斜杠]
- n
如果我 var_dump 一个真正的换行符
var_dump(unpack('C*',"\r\n"));
结果是:
array(2) {
[1]=> int(13)
[2]=> int(10)
}
如何在 mysql 中正确存储真正的换行符?
编辑:
@all 如果我做的很简单
var_dump("\r\n");
它会像这样显示:
string(2) "
"
这很好,但我看不到真正的字符!
【问题讨论】:
-
我从来没有遇到过你的问题。假设您有一个文本区域和换行符。您只需将它们按原样保存在数据库中并使用nl2br 显示它们。就是这样。
-
@machineaddict 不适用于这种情况。我需要将换行信息存储在一个单独的字段中,以便能够解析具有不同换行符的 CSV 文件。
-
你输入
\r\n作为默认值,会不会是phpmyadmin转义了这个值? -
那么当你将它们保存为字符串
\r\n时,你为什么要unpack? -
出于调试原因,我正在解包以便能够看到真正的字符。
标签: php mysql line-breaks