블로그 프로필 이미지

SMALL




☞ database.php (CI 3.0)


database.php 에서는 데이터베이스 라이브러리를 사용과 관련된 환경설정들을 할 수 있다. 데이터베이스를 사용하지 않고 웹을 서비스한다면 상관없겠지만, 데이터 베이스를 사용하지 않는 웹은 거의 없을거라고 생각한다. 


데이터베이스 설정에 앞서, CI 에서 데이터베이스 기본 설정값을 로드하는 방법은 아래와 같다.


$this->load->database();


만약 데이터베이스 의 사용이 전역적으로 빈번하게 이루어 진다면 환경설정 파일인 autoload.php 를 열어서 자동로드에 database 라이브러리를 추가해 주면된다.  


아래는 database.php 파일의 내용에 대한 설명이다. 설명 같은 경우 주석으로 되어있으니 주석을 참고하면 된다.


config/database.php


<?php defined('BASEPATH') OR exit('No direct script access allowed');
/*
+ 이 설정은 데이터베이스의 초기 설정들이다 

=>  $active_group = 기본으로 사용할 데이터베이스를 설정 
ex) 기본값 : default
=>  $query_builder = 쿼리빌더 클래스를 사용할지 안할지 설정
ex) TRUE 또는 FALSE
ex) 메뉴얼 : http://www.codeigniter.com/user_guide/database/query_builder.html?highlight=query_builder#CI_DB_query_builder


+ 아래의 설정들은 사용할 데이터베이스에 대한 값들을 설정하는곳이다

=>  ['dsn'] =  데이터베이스 드라이버에서 PHP 를 확장하는 경우 
데이터 베이스에 대한 정보를 문자열로 전부 설정해 주어야 할때 필요하다. 자세한 설명은
아래의 메뉴얼을 참고하면 된다.
ex) 메뉴얼 : http://www.codeigniter.com/user_guide/database/configuration.html
=>  ['hostname'] = 데이터베이스의 서버이름을 설정한다  ex) localhost,127.0.0.1
=>  ['username'] = 사용자 아이디
=>  ['password'] = 사용자 비밀번호
=>  ['database'] = 연결할 데이터베이스 이름
=>  ['dbdriver'] = 데이터베이스의 타입을 설정한다. ex) 현재지원되는 타입 : cubrid, ibase, mssql, mysql, mysqli, oci8,
odbc, pdo, postgre, sqlite, sqlite3, sqlsrv
=>  ['dbprefix'] = 이 설정은 CI 데이터베이스 클래스의 엑티브레코드 를 사용할경우
테이블명에 자동으로 접두어를 붙여준다 ex) 접두어가 test_ 이고 테이블명 : board 일경우 
이설정값에 의해 테이블명은 test_board 가된다. 
=>  ['pconnect'] = 데이터베이스가 끊기지 않고 영속적(영구적으로 지속) 연결을 사용할지 설정 
ex) 지원되는 값(활성/비활성) :  TRUE 또는 FALSE
=>  ['db_debug'] = 데이터베이스의 에러를 표시할 것인지 말것인지를 설정 ex) 지원되는 값(활성/비활성) : TRUE 또는 FALSE
=>  ['cache_on'] = 데이터베이스 쿼리를 캐시할것인지 말것인지 설정 
ex) 메뉴얼 : http://www.codeigniter.com/user_guide/database/caching.html?highlight=database%20caching%20class
ex) 한글 참고 메뉴얼 : http://www.codeigniter-kr.org/user_guide_2.1.0/database/caching.html
=>  ['cachedir'] = 데이터베이스 쿼리 캐시가 저장될 경로 ex) 사용해보진 않았지만 절대경로로 application/저장경로
이와같은 형식으로 지정해주어야 할듯하다
=>  ['char_set'] = 데이터베이스와 통신할때 사용할 문자인코딩을 설정한다 ex) utf-8
=>  ['dbcollat'] = 데이터베이스 이용시 문자들간 비교가 필요할시 사용될 대조방식을 설정
ex) 기본설정값 : utf8_general_ci  
ex) 이 설정은 mysql 과 mysqli 드라이버에서만 사용된다
=>  ['swap_pre']  = 이 값이 쓰이는 방식은 아직 정확하게 모르니 일단 패스한다. 
=>  ['encrypt']  = 데이터베이스 연결시 암호화된 연결을 사용할 지 안할지 설정
ex) TRUE 또는 FALSE 
=>  ['compress'] = 클라이언트의 압축을 사용할지 안할지 설정, (MySQL 의 경우만)
ex) TRUE 또는 FALSE
=>  ['stricton'] = sql 연결시 엄격모드를 설정할지 안할지 설정
ex) TRUE 또는 FALSE
=>  ['failover'] = 데이터베이스의 주 연결이 장애로 인해 연결될 수 없는 경우, 설정된
failover 값들로 대체된다. 이때 값들은 미리 설정되어있어야한다.
ex ) 메뉴얼 : http://www.codeigniter.com/user_guide/database/configuration.html?highlight=failover
=>  ['save_queries'] = 이값은 실행된 모든 쿼리들을 저장한다. 또한 데이터베이스 쿼리함수에서
$this->db->last_query() 를 사용할 수 있게 해준다. 기본값은 TRUE 이지만, SQL 에서 쿼리를
많이 사용하는경우 메모리에 과부하가 생길 수 있다. 그럴경우에는 FALSE 로 설정해 놓는게 좋다.
*/

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'user',
    'password' => '',
    'database' => '',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => TRUE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);
?>


LIST