2017-07-26 12 views
1

application/config/ database.php、 同じローカルホストで別のデータベースを設定するには、 どうすればよいですか?ありがとうアドバンス複数のデータベースを同じローカルホスト、ルート、パスワードで設定する方法

$active_group = 'default'; 
$active_record = TRUE; 
$db['default'] = array(
'dsn' => '', 
'hostname' => 'localhost', 
'username' => 'root', 
'password' => '', 
'database' => 'business_permit', 
'dbdriver' => 'mysqli', 
'dbprefix' => '', 
'pconnect' => FALSE, 
'db_debug' => (ENVIRONMENT !== 'production'), 
'cache_on' => FALSE, 
'cachedir' => '', 
'char_set' => 'utf8', 
'dbcollat' => 'utf8_general_ci', 
'swap_pre' => '', 
'encrypt' => FALSE, 
'compress' => FALSE, 
'stricton' => FALSE, 
'failover' => array(), 
'save_queries' => TRUE 
); 
+1

参照してください。https://stackoverflow.com/a/40894657/3635 079 –

+0

[Codeigniter - 複数のデータベース接続]の可能な複製(https://stackoverflow.com/questions/8268853/codeigniter-multiple-database-connections) –

答えて

5

他のデータベースグループを使用することをお勧めします。いつものようにmasterデータベース($this->db)を使い続けるには、セカンダリデータベースに対する永続的な接続設定オプションをオフにしてください。唯一のマスター・データベースは、永続的な接続で動作するはずです:

マスターデータベース

$db['default']['hostname'] = "localhost"; 
$db['default']['username'] = "root"; 
$db['default']['password'] = ""; 
$db['default']['database'] = "database_name"; 
$db['default']['dbdriver'] = "mysql"; 
$db['default']['dbprefix'] = ""; 
$db['default']['pconnect'] = TRUE; 
$db['default']['db_debug'] = FALSE; 
$db['default']['cache_on'] = FALSE; 
$db['default']['cachedir'] = ""; 
$db['default']['char_set'] = "utf8"; 
$db['default']['dbcollat'] = "utf8_general_ci"; 
$db['default']['swap_pre'] = ""; 
$db['default']['autoinit'] = TRUE; 
$db['default']['stricton'] = FALSE; 

セカンダリデータベース(予告pconnectがfalseに設定されている)

$db['otherdb']['hostname'] = "localhost"; 
$db['otherdb']['username'] = "root"; 
$db['otherdb']['password'] = ""; 
$db['otherdb']['database'] = "other_database_name"; 
$db['otherdb']['dbdriver'] = "mysql"; 
$db['otherdb']['dbprefix'] = ""; 
$db['otherdb']['pconnect'] = FALSE; 
$db['otherdb']['db_debug'] = FALSE; 
$db['otherdb']['cache_on'] = FALSE; 
$db['otherdb']['cachedir'] = ""; 
$db['otherdb']['char_set'] = "utf8"; 
$db['otherdb']['dbcollat'] = "utf8_general_ci"; 
$db['otherdb']['swap_pre'] = ""; 
$db['otherdb']['autoinit'] = TRUE; 
$db['otherdb']['stricton'] = FALSE; 

使用している間に、データベース・オブジェクトとしてセカンダリデータベースを使用することができます通常のマスターデータベース:

// use master dataabse 
$users = $this->db->get('users'); 

// connect to secondary database 
$otherdb = $this->load->database('otherdb', TRUE); 
$stuff = $otherdb->get('struff'); 
$otherdb->insert_batch('users', $users->result_array()); 

// keep using master database as usual, for example insert stuff from other database 
$this->db->insert_batch('stuff', $stuff->result_array()); 

希望あなたの質問に答えました。あなたが質問をする前に、まず グーグル...;)

Codeigniter - multiple database connections

+0

ここに入れる –

+0

//マスターデータを使用する $ users = $ this - > db-> get( 'users'); //セカンダリデータベースに接続 $ otherdb = $ this-> load-> database( 'otherdb'、TRUE); $ stuff = $ otherdb-> get( 'struff'); $ otherdb-> insert_batch( 'users'、$ users-> result_array()); //他のデータベースのものを挿入するなど、通常の方法でmasterデータベースを使用し続けます。 $ this-> db-> insert_batch( 'stuff'、$ stuff-> result_array()); –

+0

それが仕事の男 –

0

あなたは生産・開発フォルダ内のconfigフォルダを作成し、database.phpでファイルを追加し、複数のデータベース

  • を使用するには、使用環境を持っています
  • 、ルート・パスindex.phpファイルセット環境
関連する問題