如何在php中将文本插入数据库

时间:2014-12-03 08:41:23

标签: php html mysql

从文本区输入字符串

line1
line2 ‘
”line3″
<div>line4<div>

通缉数据库

line<br />1line2 '<br />"line3"<br />&lt;div&gt;line4&lt;div&gt;

我正在使用它,但它有一些错误。当输入有引号时,我没有从示例中插入数据库。

$input = $_POST['textarea'];
$input = trim($input);
$input = htmlspecialchars($input);
$input = nl2br($input);
$input = mysql_real_escape_string($input);

3 个答案:

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

try online fuction here