【问题标题】:Why does it give error after flashdata message?为什么它在 flashdata 消息后给出错误?
【发布时间】:2018-11-10 16:22:38
【问题描述】:

在 Codeigniter 中,当我插入新数据时,网站冻结了。我无法点击任何地方。我设置了flash数据,插入新数据后,网站被锁定。刷新网站后,它给出了这个错误:

A Database Error Occurred
Error Number: HY000/2006

MySQL server has gone away

SELECT * FROM `customer` WHERE `cusId` = '1'

Filename: controllers/Vehicles.php

Line Number: 454

这样的错误更多。

我的控制器:

............

$insert = $this -> db -> insert("vehicles", $data);

            if ($insert) {

                if($this->session->userdata('people_lang') == 'en') {$this->session->set_flashdata("success", "Vehicle has been Added Successfully!"); }
                elseif($this->session->userdata('people_lang') == 'ar') {$this->session->set_flashdata("success", "تمت إضافة السيارة بنجاح!"); }

                redirect(base_url("vehicles"));

            } else {

                if($this->session->userdata('people_lang') == 'en') {$this->session->set_flashdata("error", "An Error Occurred during the Process."); }
                elseif($this->session->userdata('people_lang') == 'ar') {$this->session->set_flashdata("error", "حدث خطأ أثناء العملية."); }

                redirect(base_url("vehicles"));

            }

【问题讨论】:

  • SELECT * FROM customer..不是INSERT into vehicles,请出示相关代码。
  • 与问题无关,但您无需将base_url 传递给redirect,它会为您解决问题。改用`redirect('vehicles')。
  • 您确定问题出在set_flashdata 上吗?如果您删除这些呼叫,问题会消失吗?
  • 没有 set_flashdata,它不会出错。当我添加 set flashdata 时,它会给出 MySQL 服务器已消失的错误。
  • 问题出在哪里?有人帮忙吗?

标签: php sql codeigniter session codeigniter-3


【解决方案1】:

您是否已将数据库驱动程序添加到自动加载中?

https://www.codeigniter.com/userguide3/database/connecting.html

如果您的应用程序使用大量数据库,这将是一个好主意。否则,您可以在执行查询之前手动调用驱动程序并重新连接。

【讨论】:

    猜你喜欢
    • 2017-09-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2017-07-17
    • 1970-01-01
    相关资源
    最近更新 更多