如何从 CakePHP 中的某些数据库表中获取数据库配置的值?
How to Get values for DB configuration from some database Tables in CakePHP ?
我正在制作一个将安装在多个客户端的应用程序,每个客户端的数据库配置都会不同,因为我将使用多个不同的数据库,如 Oracle 和 MySql。
一个数据库在所有数据库中都是通用的,我在同一个地方创建了一个 table,我将在其中保存数据库配置详细信息,现在如何从 database.php 的 table 中选择该数据。
找不到任何有点混乱的东西。`class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => 'root',
'database' => 'hrportal_imp',
'prefix' => '',
//'encoding' => 'utf8',
);
//want to fetch data from x table from Default datasource.
public $ora = array(
'datasource' => 'Database/Oracle',
'persistent' => false,
'host' => '<IP i get from above db>',
'port' => '1521',
'login' => '<Data i get from above db>',
'password' => '<Data i get from above db>',
'database' => '<IP i get from above db>:1521/orcl',
'prefix' => '',
'sid' => 'orcl'
);
}`
默认情况下,cakephp 将使用您可以在 $default 变量中编写的 "default" 配置。您也可以根据要求更改数据库连接。您也可以在控制器上检查当前选择的数据库。
App::import('Model', 'ConnectionManager');
$ds = ConnectionManager::getDataSource('default');
echo $ds->config['database'];
我通过在 AppController 的 Beforefilter 中放置相同的内容来做到这一点。
App::import('Model', 'ConnectionManager');
ConnectionManager::create('ora',
$config = array('datasource' => 'Database/Oracle',
'persistent' => false,
'host' => 'dynamic Host',
'port' => '1521',
'login' => 'HCM',
'password' => 'hdhd',
'database' => 'dynamic host:1521/dhdh',
'prefix' => '',
'sid' => 'orcl')
);
我正在制作一个将安装在多个客户端的应用程序,每个客户端的数据库配置都会不同,因为我将使用多个不同的数据库,如 Oracle 和 MySql。 一个数据库在所有数据库中都是通用的,我在同一个地方创建了一个 table,我将在其中保存数据库配置详细信息,现在如何从 database.php 的 table 中选择该数据。
找不到任何有点混乱的东西。`class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => 'root',
'database' => 'hrportal_imp',
'prefix' => '',
//'encoding' => 'utf8',
);
//want to fetch data from x table from Default datasource.
public $ora = array(
'datasource' => 'Database/Oracle',
'persistent' => false,
'host' => '<IP i get from above db>',
'port' => '1521',
'login' => '<Data i get from above db>',
'password' => '<Data i get from above db>',
'database' => '<IP i get from above db>:1521/orcl',
'prefix' => '',
'sid' => 'orcl'
);
}`
默认情况下,cakephp 将使用您可以在 $default 变量中编写的 "default" 配置。您也可以根据要求更改数据库连接。您也可以在控制器上检查当前选择的数据库。
App::import('Model', 'ConnectionManager');
$ds = ConnectionManager::getDataSource('default');
echo $ds->config['database'];
我通过在 AppController 的 Beforefilter 中放置相同的内容来做到这一点。
App::import('Model', 'ConnectionManager');
ConnectionManager::create('ora',
$config = array('datasource' => 'Database/Oracle',
'persistent' => false,
'host' => 'dynamic Host',
'port' => '1521',
'login' => 'HCM',
'password' => 'hdhd',
'database' => 'dynamic host:1521/dhdh',
'prefix' => '',
'sid' => 'orcl')
);