我已经回答了这个问题:Data Limit on MySQL DB Insert我无法用有限的信息解决这个问题。我正在使用WAMP。我有许多富文本编辑器和4个图像,这是由一个POST请求发送到另一个页面。超过一定的阈值限制后,查询将失败。有没有附近的路?
编辑:在显示查询字符串时,我似乎能够检索通过POST发送的每一位数据。我非常确定它与数据库相关。图像被存储为BLOB。
编辑#2:错误显示为"MySQL服务器已消失“。
发布于 2013-07-08 17:46:00
您可能违反了max_allowed_packet设置。有关更多数据,请参阅here。
引用,
如果您使用的是mysql客户端程序,那么它的默认max_allowed_packet变量是16MB。
如果你上传的是未压缩的图片,这个值很容易达到。
此外,如果您可以命名您使用的特定数据库接口类,那就太好了(PDO?mysql_?mysqli_?),因为不同的类处理错误的方式不同。它也可以完全不处理过大的数据包情况。
附言:你真的应该检查你的日志,看看你遇到的具体错误。首先要查找的是/var/log/mysql/error.log (可能会根据您的环境而有所不同)
更新: mysql_error()返回"MySQL server has gone away"
中的错误:“如果向服务器发送的查询不正确或太大,也可能会出现这些错误。如果mysqld接收到过大或无序的数据包,它会假定客户端出了问题,并关闭连接。如果您需要大型查询(例如,如果您正在处理大型BLOB列),则可以通过设置服务器的max_allowed_packet变量来增加查询限制,该变量的默认值为1MB。您可能还需要增加客户端上的最大数据包大小...“
(引述由@Colin Morelli提供)
发布于 2013-07-08 17:29:04
有时,如果上传的文件太大,php会达到内存限制。根据您的配置,这可能会有所帮助:
set_time_limit(0);
ini_set('memory_limit', '-1');发布于 2013-07-08 17:51:06
编辑:
如果这不是我们都急于回答的内存分配问题,那么它可能是内存引擎的花边新闻,所以你可以检查一下。
评论:
根据我的经验,这很可能是内存问题,因为只有在尝试更大的导入时才会发生
(当我试图从单个查询返回20MB的结果集时,我的应用程序会发生这种情况)
https://stackoverflow.com/questions/17523120
复制相似问题