zl程序教程

您现在的位置是:首页 >  其他

当前栏目

记一次ThinkPHP框架错误解决处理!

2023-03-31 10:31:02 时间

提起Web始终不能绕过一个语言,那就是PHP,而要说到PHP的Web框架,对于php开发工程师而言,ThinkPHP和Laravel应该都是必须掌握好的框架,甚至需要熟练乃至精通一个框架!

而下面本渣渣要记录的一个网页错误就是ThinkPHP框架的,严格意义上来说应该是数据库的错误处理,以下仅供参考,仅为记录学习!

某一个正常上线的网站突然之间首页,详情页均访问不了,后台进入同样也是一个提示报错:页面错误,请稍候再试!

身为技术渣,本渣渣是彻底蒙蔽了!!!

错误代码

[10501] PDOException in Connection.php line 390
SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
            $this->PDOStatement->execute();
            // 调试结束
            $this->debug(false, '', $master);
            // 返回结果集
            return $this->getResult($pdo, $procedure);
        } catch (PDOException $e) {
            if ($this->isBreak($e)) {
                return $this->close()->query($sql, $bind, $master, $pdo);
            }
            throw new PDOException($e, $this->config, $this->getLastsql());
        } catch (Throwable $e) {
            if ($this->isBreak($e)) {
                return $this->close()->query($sql, $bind, $master, $pdo);
            }
            throw $e;
        } catch (Exception $e) {
            if ($this->isBreak($e)) {
                return $this->close()->query($sql, $bind, $master, $pdo);
            }

请注意,这是最终显示出来的错误代码,这需要设置调试模式才能看到报错,这与Django框架类似,通过调试状态的下的错误代码来知晓错误的具体情况及代码块!

ThinkPHP框架调试状态

已经上线正常的网站通常都会关闭调试状态,把报错设定为一个温馨提示,不会把具体的出错的代码块暴露出来,这个时候想要知晓具体的错误代码方便搜索查找解决方案,将ThinkPHP框架调试状态开启是一定要处理的!

未开启错误提示:

开启错误提示:

ThinkPHP框架调试开启

请注意ThinkPHP框架版本以及开发人员设置,本渣渣这里的开启仅供参考!

  • thinkphp目录中的 convention.php

经测试修改,无效!本渣渣没改对目录,这应该是总的开关!

  • application目录中的 config.php

经过测试修改,有效!这应该是项目配置的开关,开启后,具体的错误代码已更新!

  • 而具体的修改的地方,请看下面的代码
  // 应用调试模式
    //'app_debug'              => false,
    'app_debug'              => true,
 // 错误显示信息,非调试模式有效
    'error_message'          => '页面错误!请稍后再试~',
    // 显示错误信息
    //'show_error_msg'         => false,
    'show_error_msg'         => true,

很明显,开启和关闭,就是在true和false修改,而网页正常的错误提示就是'error_message' => '页面错误!请稍后再试~',这一代码!

错误解决方案

其实经过搜索资料,很容易就能得出解决方案,一搜一大把!

经过比对,的确是服务器上的磁盘空间满了,仅仅是删除了一个文件夹,网站访问就正常了!

本渣渣确实捏了一把汗!

当然还有干扰信息,虽然本渣渣按照能正常访问,但是,这个替换处理方法实际上我这边是更换了一个本地的数据库,数据倒回到了去年20年的数据!