1

データベース名を除いてすべて同じ接続プロパティを持ついくつかの国固有のデータベースがあります。

database.php に各国のデータベース構成を追加するのではなく、コントローラーからデータベース名パラメーターを設定して、データベース構成をロードできるようにしたいと考えています。

何かのようなもの:

$db->set_item('database', 'UK_database');

また

$config->sap->database = 'UK_database';

次に、次のようにします。

$sap = $this->load->database('sap', TRUE);

これは可能ですか?

4

1 に答える 1

0

まず、最初に対処する必要がある構造的な問題があると思います。たとえば、それらが国固有のデータベースである場合、それらにプレフィックスを付けてテーブルを同じデータベースに配置しないのはなぜですか?

次に、もっとドライになりたいだけだと思います。あなたのdatabase.php構成では、なぜそれを複製しないのでしょうか?

$database = array(
    'user' => '',
    'pass' => '',
    ...
);

 $db['dbname1'] = $database;
 $db['database'] = 'Some other database';
 $db['dbname2'] = $database;
 $db['database'] = 'Another database';

少なくとも、資格情報をドライに保ち、複数のデータベースを使用するという CI 規則に従います。

たとえば、あるデータベースのレコードを更新する必要がある場合。

$db = $this->load->database('some_selection_process', TRUE);
$db->do_some->db_related->stuff();
于 2013-07-18T04:25:27.387 に答える