thinkphp 프레임 워 크 데이터베이스 전환 실현 방법 분석

본 고의 실례 는 thinkphp 프레임 워 크 데이터베이스 전환 실현 방법 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
데이터베이스 설정:

 //     1
'db_config1' => [
  //      
  'type'    => 'mysql',
  //      
  'hostname'  => '127.0.0.1',
  //     
  'database'  => 'thinkphp',
  //       
  'username'  => 'root',
  //      
  'password'  => '',
  //          utf8
  'charset'   => 'utf8',
  //       
  'prefix'   => 'think_',
],
//     2
'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';


//         
$test = Db::name("test")->select();
//          
$test1=Db::connect("DB_Config_1")->name("test")->select();

application/config.php

$db1 = [ 
'type'=>'mysql', 
'hostname'=>'127.0.0.1', 
'database'=>'testA', 
'username'=>'root', 
'password'=>'123456', 
'hostport'=>'3306', 
'params'=>[], 
'charset'=>'utf8', 
'prefix'=>'', ], 
$db2 = [ 
'type'=>'mysql', 
'hostname'=>'127.0.0.1', 
atabase'=>'testB', 
'username'=>'root', 
'password'=>'123456', 
'hostport'=>'3306', 
'params'=>[], 
'charset'=>'utf8', 
'prefix'=>'', ], 
Db::connect('db1')->query('select * from user where age=25');

방법 설정
저 희 는 Db 클래스 를 호출 할 때 연결 정 보 를 동적 으로 정의 할 수 있 습 니 다.예 를 들 어:

Db::connect([
  //      
  'type'    => 'mysql',
  //      DSN  
  'dsn'     => '',
  //      
  'hostname'  => '127.0.0.1',
  //     
  'database'  => 'thinkphp',
  //       
  'username'  => 'root',
  //      
  'password'  => '',
  //        
  'hostport'  => '',
  //        
  'params'   => [],
  //          utf8
  'charset'   => 'utf8',
  //       
  'prefix'   => 'think_',
]);

문자열 사용 하기:

Db::connect('mysql://root:[email protected]:3306/thinkphp#utf8');

문자열 연결 의 정의 형식 은:
데이터베이스 종류://사용자 이름:비밀번호@데이터베이스 주소:데이터베이스 포트/데이터베이스 이름\#문자 집합
메모:문자열 방식 은 접두사 와 연결 매개 변수 와 같은 일부 매개 변 수 를 정의 할 수 없습니다.
만약 에 저희 가 설정 파일 을 사용 하고 있다 면(데이터베이스 설정 파일 이 아 닙 니 다)추가 데이터베이스 연결 정 보 를 설정 하 였 습 니 다.예 를 들 어:

//     1
'db_config1' => [
  //      
  'type'    => 'mysql',
  //      
  'hostname'  => '127.0.0.1',
  //     
  'database'  => 'thinkphp',
  //       
  'username'  => 'root',
  //      
  'password'  => '',
  //          utf8
  'charset'   => 'utf8',
  //       
  'prefix'   => 'think_',
],
//     2
'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';

우 리 는 고 칠 수 있다.

Db::connect('db_config1');
Db::connect('db_config2');


데이터베이스.php 는 프레임 워 크 의 기본 데이터베이스 설정 으로 데이터베이스 1 의 정 보 를 쓰 고 데이터베이스 2.php 를 새로 만 들 었 습 니 다.데이터베이스 2 를 설치 하 는 정보 입 니 다.
데이터베이스 2 를 만 든 후 config 프로필 에서 파일 은 마지막 으로 데이터베이스 2 의 설정 정 보 를 도입 합 니 다.

$db_con2 = require_once ('database2.php'),
'db_con2' => $db_con2,

코드 참조:
데이터베이스 1 을 선택 할 때 저 는 모델 로 SQL 문 구 를 직접 작성 합 니 다.

//    
$user = new User();
$result = $user->where('username', $data['username'])
        ->where('password', $data['password'])
        ->find();

혹은

User::where('id','1')->find();
//      
Db::table('think_user')->where('id',1)->find();

데이터베이스 2 의 정 보 를 조회 할 때 일반 검색 어 를 호출 합 니 다.

$list = Db::connect('db_con2')
->table('nrf_amf_reg_info')
->alias('r')
->join('nrf_amf_server s','r.Id = s.nrf_amf_reg_Id','LEFT')
->paginate();

혹은

$list = Db::connect('db_con2')->name('nrf_disc_record')->paginate();
주:nrfamf_reg_info 와 nrfdisc_표 이름
thinkpHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기