【发布时间】:2012-01-29 02:48:15
【问题描述】:
我创建了一个动态创建数据源的类方法,以检查给定的数据库连接信息是否正确。保存连接信息的数组格式如下:
Array
(
[datasource] => Database/Mysql
[persistent] => 0
[host] => localhost
[login] => root
[password] =>
[database] => wp33
[prefix] => dr_
[encoding] => UTF8
[port] =>
)
而且我的方法中包含该代码:
@App::import('Model', 'ConnectionManager');
ConnectionManager::create('Default', $config);
$db = ConnectionManager::getDataSource('default');
if(!$db->isConnected())
{
$this->Session->setFlash(__d('dir', 'Could not connect to database.'), 'Flash/error');
return;
}
注意 $config 保存上述数组中的数据。
问题是方法代码返回了那个错误:
缺少数据库连接 错误:SQLSTATE [42000] [1049] 未知数据库 'wp33' 需要数据库连接 错误:确认您已创建文件:app\Config\database.php。
因为我的数据库服务器中不存在数据库shema wp33。
我喜欢做的是从 CakePHP 端停止该错误,并使用 $this->Session->setFlash 向我的客户端显示错误,而不是默认的 CakePHP 错误。
有什么好主意吗?
【问题讨论】:
标签: php cakephp error-handling