【问题标题】:CodeIgniter 'MySQL has Gone Away'CodeIgniter 'MySQL 已经消失了'
【发布时间】:2015-01-02 17:48:40
【问题描述】:

我知道有很多关于 MySQL 的“服务器已消失”错误的话题,但这个似乎是随机发生的,并且处于不利的条件下。

我正在使用 CodeIgniter 3.0。在我所做的研究中,我发现someone else with this problem 使用了这个框架,但这个问题从未得到解决。他/她说这是 CodeIgniter 的错,因为数据库与其他应用程序没有问题。

人们说这个问题通常是因为超时,但我认为不会出现数据量最小的超时。事实上,我试图从中获取信息的表不超过 5 行。我只是在做一个SELECT * FROM table WHERE id = x,所以我真的不认为这么多数据存在性能问题。

我的查询代码如下:

public function getArticleByRef($ref)
            {
                $this->db->reconnect();
                $article = array();
                $mods = array();
                $run = array();
                $supplier=array();
                $query = ($this->db->get_where('PABE_articles',array('Reference' => $ref),1));
                $article = $query->result_array();

                if(!$article)
                    return array('article' => null,'mods' => $mods,'run' => $run,'supplier'=>$supplier);
                $id = $article[0]['id'];
                $query = $this->db->get_where('PABE_mods',array('idarticle'=>$id));
                $mods = $query->result_array();
                $query = $this->db->select('*')
                    ->from('PABE_run')
                    ->where('idarticle', $id)
                    ->order_by('Color asc,Number asc')
                    ->get();
                $run = $query->result_array();
                $query = $this->db->get_where('PABE_supplieres',array('Reference' => $article[0]['Referencesupplier']));
                $supplier=  $query->result_array();
                return array('article' => $article,'mods' => $mods,'run' => $run,'supplier'=>$supplier);
            }

如您所见,我做了四个查询。再说一次,在这些表中,没有一个超过 5 行。

表格的列数为:

Articles: 27
Supplier: 2
Run: 3
Mods: 4

这个问题完全是随机的,所以如果不修复它,我就无法完成这个应用程序。非常奇怪的是,即使报告了这个问题,数据库中的所有数据都会毫无问题地加载。

一切都在我的电脑上运行 - 本地主机。

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    可能是您的 mysql 未配置为支持持久连接。尝试注释重新连接行或编辑 my.ini 并启用持久连接。

    问候

    【讨论】:

    • 我添加了 reconnect() 行实际上是因为这个问题。这是我在互联网上找到的不起作用的解决方案之一。此外,默认情况下在 CodeIgniter 中启用持久连接。我的应用程序已启用它:'pconnect' => TRUE。不过,我会尝试禁用它。也许这就是问题所在。
    • 好吧,幸运并发布结果
    • 好的,一直在使用该应用程序,到目前为止,完全没有问题。它每 1/2 小时至少发生一次或两次,所以我假设它是固定的。非常感谢您为我指明了正确的方向:)!
    • 知道这一点很好 ;)
    • 只是为了更新:错误根本没有回来。我会说它已经解决了:)非常感谢!
    猜你喜欢
    • 2018-12-31
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2010-12-20
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多