如何在mySQL数据库中正确存储textarea的换行符?

时间:2011-03-09 04:59:51

标签: php mysql forms codeigniter textarea

我一直有提交和存储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函数。

3 个答案:

答案 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()

for more