0

我有一个填写字段并提交的表单,它将所有这些添加到 SQL 数据库中的表中。为此,我有一个简短的 PHP 脚本,它获取所有的 post 值,然后将它们插入到数据库中。提交表单中的一个字段超过 7000 个字母,不会提交。如果我清除文本超过 7k 个字符的 1 描述框,它将提交。我可以手动将所有这些详细信息添加到数据库中,并且它们会按应有的方式显示在网站上。问题在于描述这么长。有没有办法解决这个问题,或者对字母的数量有限制?这是insertpost.php 中的代码。这是提交表单时调用的页面

        $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)
4

2 回答 2

2

是的,有一个限制,您会发现它记录在 PHP 手册中的字符串http://php.net/string中:

注意:字符串可以大到 2GB。

这要求您允许 PHP 使用那么多内存。这并不总是可以根据操作系统进行配置。更多细节,我可以建议我的博客文章的开头:一些 PHP 内存拉伸乐趣的协议

于 2013-01-03T22:14:28.827 回答
0

正如 haskre 所建议的,这是 PHP 中字符串的限制,但它相当大,7000 个字符不应该引起问题。MySQL 中的字段大小也有更严格的限制,但是我们可以忽略这一点,因为您说您可以将条目直接保存到 MySQL 中并且它们显示正常。

您需要找出为什么它没有插入。我怀疑您的 7000 个字符中有一个字符正在破坏它,可能是引号符号或您需要转义的东西。

再次运行包含 7000 个字符的脚本并打印出 MySQL 错误,以便调试和解决。

要从 MySQL 打印错误,可以使用 *mysql_error()*。更多信息可以在php 手册中找到。

于 2013-01-03T22:24:47.813 回答