2012-04-16 28 views
1

能力会如何使用autoload.php笨自动加载数据库,但要检查是否存在连接

我已经有了,当然自动加载......这是容易的部分,我自动加载数据库。

但也允许我检查数据库是否已连接,如果没有,显示一个特定的页面,如“我们很抱歉,但我们的数据库目前无法使用”。

它必须是某种自定义钩子,我将不得不作出?

+0

如果它不能连接到数据库,它会抛出错误,并不会继续。你以某种方式需要重写该错误消息。 – Broncha 2012-04-16 03:10:26

回答

1

您可以在application/errors/error_db.php中编辑错误模板以使用您的自定义消息。也许使用ENVIRONMENT常数,做这样的事情:

<?php if (ENVIRONMENT === 'production'): ?> 
    <p>We are sorry but our database is currently unavailable.</p> 
<?php else: ?> 
    <!-- default template with actual database error messages --> 
<?php endif; ?> 

否则,我想你可以用一个钩子。如果你正在自动加载数据库类并想拦截错误,那么它必须至少为pre_controller,或者在完成连接检查之后,您可以在MY_Controller类的__construct()中加载数据库类。如果您愿意,您甚至可以在index.php的第一行中正确执行。

但是:我认为你要找的可能是语言文件。看看:
system/language/english/db_lang.php
如果您在同一个地方你自己的文件,但在/application,而不是/system,你可以重写适当的语言线(S):

// $lang['db_unable_to_connect'] = 'Unable to connect to your database server using the provided settings.'; 
$lang['db_unable_to_connect'] = 'We are sorry but our database is currently unavailable.'; 

...和公正的编辑CSS和/或标记在错误模板中。再次,您可以利用ENVIRONMENT常数在开发模式中显示有用的错误,并在生产中显示用户友好的错误。

当然,如果您无法连接到您的数据库 - 这是一个需要立即关注的重大问题。

+0

不是因为它没有连接在某些点上,我只是这样做,所以我可以学习(我正在制作的网站不会公开) – unlucky4ever 2012-04-16 04:48:33

相关问题