我应该如何在MySQL数据库中存储换行符?

Rob*_*est 4 html php mysql newline

我在脑海中四处奔波,试图决定如何在MySQL数据库中存储新行.

一点背景; 要求用户填写文本区域.这必须在读回之前存储在MySQL数据库中,并且内容包含在HTML电子邮件中.

我应该将它们存储为:

1)字符串文字 - 当然这是危险和不好的做法

2)作为一个字符串\r\nin - 当我从数据库中读回来时,它读取为4个字符,因此nl2br()无法正确替换它们.

3)作为HTML <br />- 因为它必须是html实体编码存储它最终存储,&lt;br /&gt;因为当它到达电子邮件<br />打印而不是实际换行.传递它将html_entity_decode()解码需要编码的其他字符.

任何帮助都会受到赞赏.

Shi*_*dim 9

按原样存放但先逃逸.这是您的选择1.当您需要提供此数据时,应用您需要格式化的任何功能.如果您需要在HTML使用nl2br()htmlentities()功能中显示它.那也适用于邮件.

如果您有这样的文本区域数据,

$text="Hello Sir,
I am Robert'); Drop table students; --
.....
Yours most obedient pupil
.....";
Run Code Online (Sandbox Code Playgroud)

在您逃脱之后,只需将其存储起来,或使用准备好的声明.

$text = $mysqli->real_escape_string($text);
Run Code Online (Sandbox Code Playgroud)