我有一个插入到mysql数据库中的文本区字段,其中可能包含换行符。文本区域数据意外地经历了两个mysql_real_escape_string函数。因此,字段数据的换行位现在存储为"\r\n“,而不是实际的新行,因为它已被双重转义?
现在,当写回textarea html字段进行编辑时,将显示"\r\n“而不是新行。
问:我如何纠正这种情况,使这些实际上再次成为新行?
发布于 2010-07-03 22:24:13
您可能正在使用mysql_real_escape字符串进行两次转义-作为输入筛选器(错误!)并作为SQL数据的准备。你必须摆脱第一个。
或once作为输入筛选器,然后对查询使用准备好的语句。把第一个也去掉。
发布于 2010-07-03 22:32:25
您绝对应该修复导致双重转义的情况。
对于已经以这种方式处理的内容,一个快速修复方法是
str_replace("\\r\\n", "\r\n");
发布于 2010-07-03 22:34:29
为了找回原来的版本,你必须反其道而行之。创建一个脚本,从表中选择现有行,并且在不转义输入的情况下更新列值。本质上,这将存储回单个(正确的)转义输入中。
https://stackoverflow.com/questions/3171711
复制相似问题