thinkphpは複数のデータベースに接続する

6107 ワード

configプロファイル
//       
    'DB_CONFIG' => array(
            'DB_TYPE'   => 'mysql', //      
            'DB_HOST'   => 'localhost', //      
            'DB_NAME'   => 'db_ebook', //     
            'DB_USER'   => 'root', //    
            'DB_PWD'    => '123456', //   
            'DB_PORT'   => 3306, //   
            'DB_PREFIX' => 't_', //       
            'DB_CHARSET'=> 'utf8', //    
            'DB_DEBUG'  =>  TRUE, //                SQL   3.2.3  
    ),

    //
    'DB_CONFIG1' => array(
            'DB_TYPE'   => 'mysql', //      
            'DB_HOST'   => '218.28.20.154', //      
            'DB_NAME'   => 'RMS_Data', //     
            'DB_USER'   => '***', //    
            'DB_PWD'    => '*****', //   
            'DB_PORT'   => 3306, //   
            'DB_CHARSET'=> 'utf8', //    
            'DB_DEBUG'  =>  TRUE, //                SQL   3.2.3  
    ),
        //
        'DB_CONFIG2' => array(
                'DB_TYPE'   => 'mysql', //      
                'DB_HOST'   => 'localhost', //      
                'DB_NAME'   => 'db_yuwen', //     
                'DB_USER'   => 'root', //    
                'DB_PWD'    => '123456', //   
                'DB_PORT'   => 3306, //   
                'DB_PREFIX' => 'yw_', //       
                'DB_CHARSET'=> 'utf8', //    
                'DB_DEBUG'  =>  TRUE, //                SQL   3.2.3  
        ),

データベースの接続
$Model_book_page=M('','','DB_CONFIG')->table('t_book_page');
$Model_RUCTURE=M('','','DB_CONFIG1')->table('SHARE_KNOWLEDGE_STRUCTURE');
$m=M('','','DB_CONFIG2')->table('yw_kecheng_info');

あるいは
 
$User = M('User','think_','mysql://root:1234@localhost/thinkphp'); 

 
$Model=M('',null,'mysql://root:[email protected]/RMS_Data');

 
Mメソッドの2番目のパラメータはデータテーブルの接頭辞であり、プロジェクト構成を採用したデータテーブルの接頭辞を空白のままにすると、3番目のパラメータは現在のインスタンス化に必要なデータベース接続情報である.同じように、インスタンス化で入力されたデータベース接続情報は、次のように構成名を使用することもできます.
$User = M('User','think_','DB_CONFIG2'); 

現在の操作でデータベース接続を切り替える必要がなく、データベースを切り替える必要がある場合は、次の操作を実行できます.
$User = M('top.User','think_'); 

インスタンス化topデータベースを表すthink_userデータテーブル.データテーブルに接頭辞がない場合は、
$User = M('top.User',null); 

 
転載先:https://www.cnblogs.com/blueskycc/p/5147932.html