我一直有提交和存储textarea内容的问题,我一直无法找到合适的解决方案。
我有一个带有textarea字段的表单,名为“description”。
当我提交包含多行文字的表格时,例如
第1行第2行
第3行
它存储在mySQL数据库中,包含更多新行。它变成: -
线路1
线路2
第3行
当我用phpmyadmin检查数据库时。
我已经尝试过VARCHAR和TEXT类型,它们都是一样的。我需要做些什么来准确存储textarea内容?
相关的codeigniter线是 aRow [$ strField] = strip_tags($ this-> input-> post($ strField)); $ this-> db-> insert($ this-> strTable,$ aRow);
$ strField将是我的textarea字段,插入是CI函数。
答案 0 :(得分:7)
好的,我找到了答案。我正在使用CI 2.0,这是一个已经报告的现有错误。 https://bitbucket.org/ellislab/codeigniter/issue/332/newlines-in-textareas-are-duplicated
快速修复如下(在/system/core/Input.php中查找文件)
//$str = str_replace(array( "\r\n", "\r"), PHP_EOL, $str);
$str = preg_replace('/(?:\r\n|[\r\n])/', PHP_EOL, $str);
希望这可以帮助那些人。
答案 1 :(得分:1)
似乎在每个新行之后添加换行符。这与数据如何插入数据库有关。小心分享那段代码?
答案 2 :(得分:0)
尝试在数据库中使用\ n,当您显示记录时使用nl2br()