从文本区输入字符串
line1
line2 ‘
”line3″
<div>line4<div>
通缉数据库
line<br />1line2 '<br />"line3"<br /><div>line4<div>
我正在使用它,但它有一些错误。当输入有引号时,我没有从示例中插入数据库。
$input = $_POST['textarea'];
$input = trim($input);
$input = htmlspecialchars($input);
$input = nl2br($input);
$input = mysql_real_escape_string($input);
答案 0 :(得分:0)
更好的方法是在保存到数据库时不使用nl2br。 当你在页面上打印textarea值时,会更好地使用nl2br
echo nl2br($dataFromDB);
答案 1 :(得分:0)
好吧,我认为错误是由数据库中类型的列造成的! 是文本的类型还是 varchar ???
通常,尝试尽可能具体地获取数据类型。如果你的字符串永远不会超过字符的某些上限,那么请使用 VARCHAR ,因为它会更有效率。如果您需要更多空间,请使用 TEXT 。如果您不确定文本将占用多少空间,则应该使用 TEXT ;性能差异不是很大,最好是面向未来,而不是在需求发生变化时必须稍后更改的风险。
VARCHAR 您可以设置每条记录接受的字符数限制,文字(几乎)无限制。
在创建临时表时,MySQL 将在内部将 TEXT转换为varchar。因此,如果可能,最好使用VARCHAR。
这实际上取决于您的数据类型。
如果您的字段固定长度(例如,32个字符的哈希值),则使用 CHAR 。这具有更好的性能,因为每个条目每行占用相同的空间。
VARCHAR 的标准限制是255个字符,但我认为它现在已经增加了。 TEXT非常长,一般只用于大内容,就像整个博客文章一样,如果你不想要限制则发表评论。
关于尺寸, VARCHAR 和 TEXT 之间没有(或很少)差异,因为它们只是存储了他们需要的东西。 CHAR 字段将始终占用其分配的长度。
我希望它会对你有所帮助,最好的问候。
答案 2 :(得分:0)
您可以使用PHP
功能
string urlencode ( string $str )
对文本进行编码,然后插入数据库
$input = urlencode ($input);
和string urldecode ( string $str )
解码文字
$input = urldecode ($input);