2012-04-16 31 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

相關問題