Php 为什么可以';我不能向SQL数据库添加一个大字符串吗?
我有一个表单,其中填写字段并提交,这将所有这些添加到SQL数据库中的表中。为此,我有一个简短的PHP脚本,它获取所有post值,然后将它们插入数据库。提交表单中的一个字段长度超过7000个字母,因此不会提交。如果我清除描述框,即文本超过7k个字符的1,它将提交。我可以手动将所有这些详细信息添加到数据库中,并在网站上显示它们。问题在于描述这么长。有没有办法解决这个问题,或者对信件的数量有限制? 这是insertpost.php中的代码。这是提交表单时调用的页面Php 为什么可以';我不能向SQL数据库添加一个大字符串吗?,php,html,sql,Php,Html,Sql,我有一个表单,其中填写字段并提交,这将所有这些添加到SQL数据库中的表中。为此,我有一个简短的PHP脚本,它获取所有post值,然后将它们插入数据库。提交表单中的一个字段长度超过7000个字母,因此不会提交。如果我清除描述框,即文本超过7k个字符的1,它将提交。我可以手动将所有这些详细信息添加到数据库中,并在网站上显示它们。问题在于描述这么长。有没有办法解决这个问题,或者对信件的数量有限制? 这是insertpost.php中的代码。这是提交表单时调用的页面 $Title = $
$Title = $_POST['title'];
$LinkTitle = $_POST['linktitle'];
$Category = $_POST['category'];
$SubCategory = $_POST['subcategory'];
$MainPic = $_POST['mainpic'];
$Description = $_POST['Description'];
$Main = $_POST['maintext'];
$Featured = $_POST['featured'];
$thumb = $_POST['thumbnail'];
include 'phpincludes/dbconnection.php';
$insertSQL = "INSERT INTO Posts (ID,Title,LinkTitle,MainPicture,ViewCount,Description,Maintext,Type,Featured,category,thumbnail)
VALUES('','$Title','$LinkTitle','$MainPic','0','$Description','$Main','$SubCategory','$Featured','$Category','$thumb')";
$db->query($insertSQL)
是的,有一个限制,您可以在PHP字符串手册中找到它: 注意:字符串可以大到2GB
这需要允许PHP使用这么多内存。这并不总是可以基于操作系统进行配置。关于更多细节,我可以建议在我的博客文章的开头:。正如haskre所建议的,在PHP中,字符串是一个限制,但是它相当大,7000个字符不应该引起问题。MySQL中对字段大小也有更严格的限制,但是我们可以忽略这一点,因为您说过可以将条目直接保存到MySQL中,并且它们显示良好 你需要找出它为什么不插入。我怀疑你的7000个字符中有一个字符正在破坏它,可能是一个引号符号或者你需要转义的东西 在中使用7000个字符再次运行脚本,并打印出MySQL错误,以便调试和解决 要从MySQL打印错误,可以使用*MySQL\u error()*。有关这方面的详细信息,请参阅。duplicate:SQL注入:。警告!您的代码包含一个--您正在将原始的、未过滤的、未验证的用户输入直接传递到SQL字符串中。SQL注入是一种很好的方法。你可以考虑使用。见鬼,根据您调用数据库的方式,您可能已经在使用其中的一个。。。