【问题标题】:How to Get values for DB configuration from some database Tables in CakePHP ?如何从 CakePHP 中的某些数据库表中获取数据库配置的值?
【发布时间】:2017-07-10 06:57:25
【问题描述】:

我正在制作一个将安装在多个客户端的应用程序,并且每个客户端的数据库配置都会不同,因为我将使用多个不同的数据库,例如 Oracle 和 MySql。 一个数据库将是通用的,我已经在同一个表中创建了一个表,我将在其中保存 db 配置详细信息,现在如何从 database.php 的表中选择该数据。

找不到任何有点困惑的东西。`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'

);

}`

【问题讨论】:

    标签: mysql cakephp-2.0


    【解决方案1】:

    我通过在 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')
                );
    

    【讨论】:

      【解决方案2】:

      默认情况下,cakephp 将使用您可以在 $default 变量中编写的“默认”配置。您也可以根据要求更改数据库连接。您也可以在控制器上检查当前选择的数据库。

      App::import('Model', 'ConnectionManager');
      $ds = ConnectionManager::getDataSource('default');
      echo $ds->config['database'];
      

      【讨论】:

      • 这里只是查看数据库名,
      • 是的。我只是给你一个例子。每当您需要选择另一个数据库时,您可以通过这种方式有条件地更改您当前的数据库。 $ds = ConnectionManager::getDataSource('ora'); echo $ds->config['database'];谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多