我正在尝试将我站点上的textarea中的文本添加到MySQL数据库中.
if (isset($_POST['text']))
{
$text = sanitizeString($_POST['text']);
$text = preg_replace('/\s\s+/',' ',$text);
$query = "SELECT * FROM profiles WHERE user='$user'";
if (MysqL_num_rows(queryMysqL($query)))
{
queryMysqL("UPDATE profiles SET text='$text' where user='$user'");
}
else
{
$query = "INSERT INTO profiles VALUES('$user','$text')";
queryMysqL($query);
}
}
else
{
$query = "SELECT * FROM profiles WHERE user='$user'";
$result = queryMysqL($query);
if (MysqL_num_rows($result))
{
$row = MysqL_fetch_row($result);
$text = stripslashes($row[1]);
}
else $text = "";
}
$text = stripslashes(preg_replace('/\s\s+/',$text));
以下是表单的代码.
但是当输入数据时,它会在数据库中显示正确但未显示正确显示的数据.见下图:
输入的文本
文本在数据库中的方式
$result = queryMysqL("SELECT * FROM profiles WHERE user='$user'");
if (MysqL_num_rows($result))
{
$row = MysqL_fetch_row($result);
echo stripslashes($row[1]) . "
希望你能帮忙!
最佳答案
您的文本,除非您使用的是富文本编辑器,例如Mark-down(如Stackoverflow),它由您的CSS设置样式,而不是由textarea本身的内容设置.
如果问题是保留换行,那么您可以在存储或从数据库检索之前通过nl2br($text)
函数运行该字符串.
我建议检索会更好,但这只是我的意见(我不能提供任何证据来支持它).