php中的mysql长文本数据类型
我正在用PHP mysql为我的网站开发wap论坛。现在在论坛的描述中,我使用php中的mysql长文本数据类型,php,mysql,Php,Mysql,我正在用PHP mysql为我的网站开发wap论坛。现在在论坛的描述中,我使用longtextdatatype。当用户输入超过1500个字符的描述时,它不会插入到数据库中。我已经搜索过了,并找到了类似的内容 tinytext256字节 文本65535字节~64kb MEDIUMTEXT 16777215字节~16MB 长文本4294967295字节~4GB 那么为什么不插入1500个字符以上的描述呢?这件事的解决方案是什么 编辑:用于插入的代码(取自注释): $top_desci来自: $to
longtext
datatype。当用户输入超过1500个字符的描述时,它不会插入到数据库中。我已经搜索过了,并找到了类似的内容
tinytext256字节
文本65535字节~64kb
MEDIUMTEXT 16777215字节~16MB
长文本4294967295字节~4GB
那么为什么不插入1500个字符以上的描述呢?这件事的解决方案是什么
编辑:用于插入的代码(取自注释):
$top_desci来自:
$top_descri =nl2br(mysql_real_escape_string($_POST['top_descri']));
我已经解决了它,我使用了一些函数来检查描述的长度,该函数的限制是1500个字符,因此它停止工作。现在工作正常。因为您正在使用GET方法提交表单?URL的限制为大约2000个字符。您应该改为使用POST。您的代码容易出现。使用或 使用PDO的示例:
<?php
$stmt = $dbh->prepare("INSERT INTO forum_top(catID, forumN, forumDescr,
forum_time, uID, forum_attach)
VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bindParam(1, $cat_idd);
$stmt->bindParam(2, $top_namee);
$stmt->bindParam(3, $top_descri);
$stmt->bindParam(4, $tmform);
$stmt->bindParam(5, $n_u_id);
$stmt->bindParam(6, $newfilename);
$stmt->execute();
?>
请记住始终对输入进行消毒。你永远不会知道某些输入包含单引号。你能发布你的插入代码吗?我的插入代码是:$sql1=“插入论坛顶部(catID、forumN、forumDescr、forum\u time、uID、forum\u attach)值($cat\u idd、$top\u namee’、$top\u desci’、$tmform’、$n\u id、$newfilename”);如果(!mysql_query($sql1,$con)){die('Error:'.mysql_Error());}并且是的,则显示时没有错误,只有页面停止加载…插入代码似乎没有任何错误,导致它在一定长度上删除任何内容-至少在您发布的部分中没有。你能补充一个问题吗?
$top\u desci
等变量来自何处,以及你在从(表单?我假设)获取数据和将它们输入查询之间对它们所做的任何事情?我已经使用了POST方法。我从未通过URL传递论坛描述。它应该可以工作,但是手册已经不鼓励使用它<代码>$top\u desci=nl2br($\u POST['top\u desci'])然后在参数上传递$top\u desci
。尝试查看此链接,
<?php
$stmt = $dbh->prepare("INSERT INTO forum_top(catID, forumN, forumDescr,
forum_time, uID, forum_attach)
VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bindParam(1, $cat_idd);
$stmt->bindParam(2, $top_namee);
$stmt->bindParam(3, $top_descri);
$stmt->bindParam(4, $tmform);
$stmt->bindParam(5, $n_u_id);
$stmt->bindParam(6, $newfilename);
$stmt->execute();
?>