微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

找不到cakephp数据库

我有使用cakePHP开发的项目,它从不同的数据库获取数据,但如果其中一个数据库某些页面未打开并给我以下错误

Database table tablenae for model moedlname was not found.

..我在这页面显示了从其他数据库显示的其他数据.

我如何确定数据库是否使用cake脱机,我可以使该模型从另一个地方读取,如缓存文件,直到数据库再次启动.

也许更好的方法是缓存结果并从缓存中读取,只需在需要时命中数据库
<?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,$password);
        if (!$link) {
            $result = false;
        }
        @MysqL_close($link);
        return $result;
    }
}
?>

原文地址:https://www.jb51.cc/php/136901.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐