我正在尝试将我网站上的textarea中的文本添加到MySQL数据库中。
下面是将文本添加到数据库的PHP代码。
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));
以下是表格的代码。
<textarea name='text' cols='40' rows='3'>$text</textarea><br />
但是当输入数据时,它会在数据库中显示正确但未显示正确显示的数据。见下图:
输入的文字
文本在页面上的显示方式
文本在数据库中的方式
这是在页面上显示文本的PHP代码。
$result = queryMysql("SELECT * FROM profiles WHERE user='$user'");
if (mysql_num_rows($result))
{
$row = mysql_fetch_row($result);
echo stripslashes($row[1]) . "<br clear=left /><br />
希望你能帮忙!!
编辑:添加额外的PHP代码
答案 0 :(得分:9)
您的文本,除非您使用的是富文本编辑器,例如Mark-down(如Stackoverflow中所示),否则由CSS设置样式,而不是textarea
本身的内容。
如果问题是保留新行,那么您可以在存储或从数据库中检索之前通过nl2br($text)
函数运行该字符串。
我建议检索会更好,但这只是我的意见(而且我无法提供任何证据支持它)。
答案 1 :(得分:4)
或者您可以使用
echo nl2br($test);