Apache杀死mysql?mysql_fetch_object():提供的参数不是有效的mysql结果资源



所以我有一个直接从浏览器运行的php脚本,我得到了两个错误:

警告:mysql_fetch_object():提供的参数不是…中的有效mysql结果资源
警告:mysql_num_rows()要求参数1为资源,在…中给定布尔值

在这个脚本中,我进行了一个查询,从我的博客表中选择所有博客:

$result = $this->query("
     SELECT *
     FROM blogs
");

我得到了他们的反馈!所以这个脚本需要一点时间来执行,比如40秒。在我的表中,我有100个博客,每次运行脚本时,我都会收到这两个错误。

重要的是要知道:如果我这样更改查询,我不会得到这些错误:

$result = $this->query("
     SELECT *
     FROM blogs
     LIMIT 0,70
");

所以我非常确信这与一些系统管理员设置有关。我使用共享主机。所以当我对所有100个博客进行操作时,我会出错,而当我只使用70个博客时,我不会。

我好像丢了mysql conexion什么的。查询没有错,我把它们打印在屏幕上,并在phpmyadmin中检查它们,它们就可以工作了。

其中一个错误来自这里:

$result = $this->query("
    SELECT *
    FROM blogs_settings
");
$settings = $this->fetch_object($result);
return $settings->max_feeds;

这个函数是用来获取最大提要/页面的,我得到了这个错误,这个函数没有错。我已经将max_execution_time设置为120,我不知道还能做什么。

我确信很多人都犯了这个错误,如果有人知道或猜测问题出在哪里,我相信不仅我会后悔。

考虑到$result = $this->query(" SELECT * FROM blogs ");不工作,但$result = $this->query(" SELECT * FROM blogs LIMIT 0,70 ");运行良好,以及您的其他评论,您是否也考虑了允许的最大内存?

我想到的另一件事(可能是首先想到的)是,如果你有几百条记录,select * from blogs不应该花40秒才能回来。你的博客到底有多大?

编辑:

现在我认为,根据你对的评论,我们正在取得进展

*我不明白最初查询的错误。在我得到所有的提要之后,我将它们保存在一个带有对象的数组中。之后,我进行了另一个查询,以获得将在主页中显示的提要的数量。这个数字我保存在blogs_settings表中。在那个查询中,我得到了错误*

在进行所有数据库连接的对象中,您是在使用该连接,还是每次都打开一个新的连接?如果是,您是否正确地释放了与数据库的连接?

相关内容

  • 没有找到相关文章

最新更新