首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >双mysql_real_escape_string插入换行符。如何恢复换行符?

双mysql_real_escape_string插入换行符。如何恢复换行符?
EN

Stack Overflow用户
提问于 2010-07-03 22:00:44
回答 4查看 3.5K关注 0票数 4

我有一个插入到mysql数据库中的文本区字段,其中可能包含换行符。文本区域数据意外地经历了两个mysql_real_escape_string函数。因此,字段数据的换行位现在存储为"\r\n“,而不是实际的新行,因为它已被双重转义?

现在,当写回textarea html字段进行编辑时,将显示"\r\n“而不是新行。

问:我如何纠正这种情况,使这些实际上再次成为新行?

EN

回答 4

Stack Overflow用户

发布于 2010-07-03 22:24:13

您可能正在使用mysql_real_escape字符串进行两次转义-作为输入筛选器(错误!)并作为SQL数据的准备。你必须摆脱第一个。

或once作为输入筛选器,然后对查询使用准备好的语句。把第一个也去掉。

票数 4
EN

Stack Overflow用户

发布于 2010-07-03 22:32:25

您绝对应该修复导致双重转义的情况。

对于已经以这种方式处理的内容,一个快速修复方法是

代码语言:javascript
运行
复制
str_replace("\\r\\n", "\r\n");
票数 3
EN

Stack Overflow用户

发布于 2010-07-03 22:34:29

为了找回原来的版本,你必须反其道而行之。创建一个脚本,从表中选择现有行,并且在不转义输入的情况下更新列值。本质上,这将存储回单个(正确的)转义输入中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3171711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档