隐藏 Codeigniter 错误并回显自定义错误

Hide Codeigniter error and echo a customized error

当我尝试连接到数据库时,出现此错误:

A PHP Error was encountered

Severity: Warning

Message: mysqli::real_connect(): (HY000/1044): Access denied for user ''@'localhost' to database 'dm_receiver'

Filename: mysqli/mysqli_driver.php

Line Number: 133

Backtrace:

File: C:\xampp\htdocs\DataMigrator\ci_my_app\models\Connection_model.php Line: 111 Function: database

File: C:\xampp\htdocs\DataMigrator\ci_my_app\models\ReadDatabase_model.php Line: 7 Function: establish

File: C:\xampp\htdocs\DataMigrator\ci_my_app\controllers\Home.php Line: 7 Function: model

File: C:\xampp\htdocs\DataMigrator\index.php Line: 292 Function: require_once

A Database Error Occurred

Unable to connect to your database server using the provided settings.

Filename: C:/xampp/htdocs/DataMigrator/ci_my_app/models/ReadDatabase_model.php

Line Number: 7

我故意指定了错误的用户名,以测试当我无法获得数据库连接时会发生什么。嗯,这就是我得到的。如果发生这种情况,我想隐藏此错误并回显我自己的消息。我该怎么做?

编辑:让我换一种方式问我的问题。当我使用 $this->db->get('mytable');我可能会得到同样的错误。这可能是因为主机名、数据库名称、用户名或密码错误。那么我怎样才能找出其中哪一个不正确并回显,例如注意,你的数据库名称是错误的?

您可以通过编辑 index.php 文件来关闭生产中的错误消息:

define('ENVIRONMENT', 'production');

然后使用您的代码检查从您的数据库中输出的内容的条件,或编辑 application/errors/error_db.php 以定义自定义错误页面。