我有一张带有textarea的表格。发送表单时,Datamapper将数据输入数据库。
我的问题现在,如何将所有换行符保存在数据库中? 在我看来,我使用
$this->escape($entry->description)'
我认为escape()会过滤掉这个不会吗? 所以我尝试使用下面的
echo nl2br($entry->description)
我已经将带有换行符的一些文本直接复制到数据库中,因为我不知道它应该如何保存,但没有任何改变。
我希望有人能提供帮助,因为我无法找到解决方案。非常感谢你。
答案 0 :(得分:1)
以下对我来说没问题,但没有问题:
$db = Zend_Db_Table::getDefaultAdapter();
$db->insert('testing', array('description' => "This is a test\nwith multiple\nlines in the db\n\nmore stuff"));
$select = $db->select()->from('testing');
$results = $select->query();
$row = $results->fetch();
$this->view->description = $row['description'];
// in the view:
echo nl2br($this->description);
在视图中,我的字符串打印出来,还有多个换行符。
默认情况下,转义只会调用htmlspecialchars(),这不会影响换行符。但是你需要调用nl2br,因为换行不会导致字符串跨越网页中的多行,这就是你使用nl2br的原因。
因此,即使手动将包含换行符的数据插入数据库,当您从表中选择数据时也无法获得换行符?