代码点火器 'MySQL has Gone Away'

CodeIgniter 'MySQL has Gone Away'

我知道有很多关于 MySQL 的 "Server has gone away" 错误的话题,但是这个似乎是随机发生的,而且是在不利的情况下发生的。

我正在使用 CodeIgniter 3.0。在我所做的研究中,我发现 someone else with this problem 使用此框架,但该问题从未得到解决。 He/she 声明这是 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

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

一切都在我的 PC 上运行 - Localhost。

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

问候