2011-12-05 88 views
0

如果我在控制器中加載5個模型,將分別爲所有模型建立到數據庫的連接CodeIgniter的模型加載問題

因爲它造成服務器掛起的問題,因爲打開每個模型的數據庫連接的多個端口。

如果有解決方案?

在此先感謝。

+2

你100%肯定是這個原因嗎? –

+0

您是否曾嘗試在mysql客戶端中運行您的查詢,然後在codeigniter中嘗試它們? – Catfish

回答

0

不,codeigniter應該爲您加載的每個模型建立一個新的數據庫連接。你是如何得出結論codeigniter是打開多個端口?這應該是不可能的

0

不,CodeIgniter使用單例模式,這意味着您只能製作每個模型/庫(或一次數據庫連接)的一個實例。

問題可能在您的數據庫查詢中 - 它們可能會減慢響應速度。你在數據庫配置中使用持久連接嗎?

有很多問題,但沒有太多的代碼,所以我們只能猜測。

0

你是否100%確定問題是這樣的?我從來沒有加載過那麼多的模型,也是因爲CI作爲一個singleton,所以對象總是一個,並且如果一個實例已經存在,類也不會被重新加載/重新實例化。

如果您的數據庫存在問題,請嘗試在config/database.php中將pconnect(持續連接)設置爲FALSE。您可能還想打開緩存,這可能會有所幫助。

$db['test']['pconnect'] = FALSE; 
$db['test']['db_debug'] = TRUE; 
$db['test']['cache_on'] = TRUE;