8
我有項目使用從不同的DB中獲取數據CakePHP的發展,但如果論文的一個數據庫中的某些網頁無法打開,給我下面的錯誤:CakePHP的數據庫中找不到
數據庫表tablenae的模型moedlname沒找到。
..我在這個頁面中顯示其他數據顯示從其他數據庫可能工作。
我怎麼能確定數據庫是否使用蛋糕離線,我可以使這個模型從另一個地方像緩存文件讀取,直到數據庫再次啓動。
我有項目使用從不同的DB中獲取數據CakePHP的發展,但如果論文的一個數據庫中的某些網頁無法打開,給我下面的錯誤:CakePHP的數據庫中找不到
數據庫表tablenae的模型moedlname沒找到。
..我在這個頁面中顯示其他數據顯示從其他數據庫可能工作。
我怎麼能確定數據庫是否使用蛋糕離線,我可以使這個模型從另一個地方像緩存文件讀取,直到數據庫再次啓動。
也許是更好的方法是緩存結果,並從緩存中讀取,只有在需要的時候打的DB ...
<?php
$cacheKey = 'myCacheNumber1';
if (($data = Cache::read($cacheKey)) === false) {
$data = $this->Model->find('all');
if ($data) {
Cache::write($cacheKey, $data);
}
}
?>
的問題,這是它假定模型和數據庫連接可用於緩存不存在(或已過期)的時間,如果不存在,您仍會得到相同的錯誤,但頻率肯定會降低。
我認爲要測試數據庫是否可用,將需要一些自定義代碼欺騙,因爲連接的核心核心方法假定成功並在不可用時大量失敗。我可能會用標準的PHP連接方法創建一個組件來控制是否應該嘗試加載模型。
<?php
$cacheKey = 'myCacheNumber1';
if (($data = Cache::read($cacheKey)) === false) {
if ($this->DbTest->check('hostname','username','password')) {
$data = $this->Model->find('all');
if ($data) {
Cache::write($cacheKey, $data);
}
}
}
?>
<?php
// app/controllers/components/db_test.php
class DbTestComponent extends Object {
function check($hostname,$username,$password) {
$result = true;
$link = @mysql_connect($hostname,$username,$password);
if (!$link) {
$result = false;
}
@mysql_close($link);
return $result;
}
}
?>
嗯。你是否有如此大規模的數據庫中斷,這是非常必要的?爲什麼? – 2010-06-08 16:36:20
飼料數據庫(股票價格數據庫)Pekka – SMSM 2010-06-08 16:38:43