디비 드라이버 레퍼런스 DB Driver Reference

이것은 플랫폼에 독립적인 DB 구현 클래스들입니다. 이 클래스는 직접적으로 호출되지 않으며, 특정 데이터베이스에 대한 아답타 클래스가 확장되고 인스턴스화 될 것입니다.

이 방법론에 대한 것은 여러 아티클을 통해 제공되었습니다. 이 문서는 그것들을 참조하기 위한 것입니다.

Important

모든 데이터베이스 드라이버에 의해 모든 함수가 제공되는 것은 아닙니다., 어떤 것은 드라이버가 지원하지 않으면 실패하고 FALSE를 반환할 수 있습니다.

class CI_DB_driver
initialize()
반환값:TRUE on success, FALSE on failure
반환형:bool

데이터베이스 설정을 초기화, 데이터베이스 연결을 설정합니다.

db_connect($persistent = TRUE)
인수:
  • $persistent (bool) – Whether to establish a persistent connection or a regular one
반환값:

Database connection resource/object or FALSE on failure

반환형:

mixed

데이터베이스와의 연결을 설정합니다.

Note

반환값은 사용 중인 기본 드라이버에 따라 달라집니다. 예를 들면, mysqli 인스턴스는 ‘mysqli’ 드라이버와 함께 반환될 것입니다.

db_pconnect()
반환값:Database connection resource/object or FALSE on failure
반환형:mixed

데이터베이스와의 지속적인 연결을 설정합니다.

Note

이 함수는 db_connect(TRUE)의 Alias 입니다.

reconnect()
반환값:TRUE on success, FALSE on failure
반환형:bool

서버의 유휴 시간제한을 초과하는 일정 시간동안 쿼리가 전송되지 않을 때 데이터베이스 연결을 유지/재생성.

db_select([$database = ''])
인수:
  • $database (string) – Database name
반환값:

TRUE on success, FALSE on failure

반환형:

bool

현재 데이터베이스를 선택/변경.

db_set_charset($charset)
인수:
  • $charset (string) – Character set name
반환값:

TRUE on success, FALSE on failure

반환형:

bool

클라이언트 문자 집합 설정.

platform()
반환값:Platform name
반환형:string

사용되고 있는 플랫폼의 이름 (mysql, mssql, 등...).

version()
반환값:The version of the database being used
반환형:string

데이터베이스 버전 번호.

query($sql[, $binds = FALSE[, $return_object = NULL]])
인수:
  • $sql (string) – The SQL statement to execute
  • $binds (array) – An array of binding data
  • $return_object (bool) – Whether to return a result object or not
반환값:

TRUE for successful “write-type” queries, CI_DB_result instance (method chaining) on “query” success, FALSE on failure

반환형:

mixed

SQL 쿼리를 실행합니다.

SQL 문자열을 입력데이터로 받아들이고, “읽기” 유형의 쿼리를 성공적으로 실행시 결과 객체를 반환합니다.

반환값:

  • “쓰기 유형” 쿼리를 성공적으로 실행시 TRUE 반환
  • 위 쿼리 실패시 FALSE 반환
  • “읽기 유형” 쿼리를 위한 CI_DB_result 객체
simple_query($sql)
인수:
  • $sql (string) – The SQL statement to execute
반환값:

Whatever the underlying driver’s “query” function returns

반환형:

mixed

query() 함수의 간단 버전입니다, 결과 객체를 얻을 필요가 없거나, 쿼리를 데이터베이스에 보내기만 하고 결과가 중요하지 않을 때 간단히 사용합니다.

trans_strict([$mode = TRUE])
인수:
  • $mode (bool) – Strict mode flag
반환형:

void

Enable/disable transaction “strict” mode.

엄격모드가 활성화되면, 여러 트랜잭션 그룹을 사용하고 있다면, 그리고 하나의 그룹이 실패한다면 모든 그룹이 롤백될 것입니다.

엄격모드가 비활성화되면, 각 그룹은 자율적으로 처리합니다. 즉 한 그룹이 실패한 것이 다른 것에 영향을 미치지 않습니다.

trans_off()
반환형:void

실행시 트랜잭션을 사용하지 않습니다.

trans_start([$test_mode = FALSE])
인수:
  • $test_mode (bool) – Test mode flag
반환:

성공시 TRUE, 실패시 FALSE

반환형:

bool

트랜잭션 시작.

trans_complete()
반환:

성공시 TRUE, 실패시 FALSE

반환형:

bool

트랜잭션 완료.

trans_status()
반환값:TRUE if the transaction succeeded, FALSE if it failed
반환형:bool

실패를 했는지 결정하는 트랜잭션 상태 플래그를 검색 할 수 있습니다.

compile_binds($sql, $binds)
인수:
  • $sql (string) – The SQL statement
  • $binds (array) – An array of binding data
반환값:

The updated SQL statement

반환형:

문자열

전달 된 바인드 값으로 SQL 쿼리를 컴파일합니다. Compiles an SQL query with the bind values passed for it.

is_write_type($sql)
인수:
  • $sql (string) – The SQL statement
반환값:

TRUE if the SQL statement is of “write type”, FALSE if not

반환형:

bool

쿼리가 “쓰기” 형식(INSERT, UPDATE, DELETE 등)인지 “읽기” 형식(SELECT 등)인지 결정합니다.

elapsed_time([$decimals = 6])
인수:
  • $decimals (int) – The number of decimal places
반환값:

The aggregate query elapsed time, in microseconds

반환형:

문자열

전체 쿼리 경과 시간을 계산합니다.

total_queries()
반환값:The total number of queries executed
반환형:int

실행된 총 쿼리 수를 반환합니다.

last_query()
반환값:The last query executed
반환형:string

가장 최근에 실행했던 쿼리문을 반환합니다.

escape($str)
인수:
  • $str (mixed) – The value to escape, or an array of multiple ones
반환값:

The escaped value(s)

반환형:

mixed

입력 데이터를 부울린(boolean)이나 널(NULL) 등 타입에 기반하여 이스케이프합니다.

escape_str($str[, $like = FALSE])
인수:
  • $str (mixed) – A string value or array of multiple ones
  • $like (bool) – Whether or not the string will be used in a LIKE condition
반환값:

The escaped string(s)

반환형:

mixed

문자값을 이스케이프합니다.

Warning

반환 문자열은 따옴표를 포함하고 있지 않습니다.

escape_like_str($str)
인수:
  • $str (mixed) – A string value or array of multiple ones
반환값:

The escaped string(s)

반환형:

mixed

LIKE 안의 문자열을 이스케이프합니다.

escape_str() 와 비슷합니다., 그러나 LIKE 조건문에서 가양자가 발생하지 않도록 %_ 와일드카드 문자도 이스케이프합니다.

Important

escape_like_str() 함수는 LIKE 조건과 같은 특수문자를 이스케이프하기 위해 ‘!’ (느낌표) 를 사용합니다. 이 함수는 부분 문자열을 이스케이프하기 때문에, ESCAPE '!' 조건을 당신을 위해 자동으로 더하지 않습니다. 그래서 수동으로 더할 수 있습니다.

primary($table)
인수:
  • $table (string) – Table name
반환값:

The primary key name, FALSE if none

반환형:

문자열

테이블의 기본 키를 가져옵니다.

Note

만약에 데이터베이스 플랫폼이 기본키 가져오는 것을 지원하지 않는다면, 첫 번째 컬럼을 기본키로 가정합니다.

count_all([$table = ''])
인수:
  • $table (string) – Table name
반환값:

Row count for the specified table

반환형:

int

테이블의 총 행의 수를 반환합니다. 테이블이 발견되지 않으면 0을 반환합니다.

list_tables([$constrain_by_prefix = FALSE])
인수:
  • $constrain_by_prefix (bool) – TRUE to match table names by the configured dbprefix
반환값:

Array of table names or FALSE on failure

반환형:

array

현재 데이터베이스의 테이블들의 목록을 얻습니다.

table_exists($table_name)
인수:
  • $table_name (string) – The table name
반환값:

TRUE if that table exists, FALSE if not

반환형:

bool

특정 테이블명이 존재하는지 알아봅니다.

list_fields($table)
인수:
  • $table (string) – The table name
반환값:

Array of field names or FALSE on failure

반환형:

array

테이블에 필드명을 리스트로 얻습니다.

field_exists($field_name, $table_name)
인수:
  • $table_name (string) – The table name
  • $field_name (string) – The field name
반환값:

TRUE if that field exists in that table, FALSE if not

반환형:

bool

특정 필드가 존재하는지 검사합니다.

field_data($table)
인수:
  • $table (string) – The table name
반환값:

Array of field data items or FALSE on failure

반환형:

array

테이블에 대해 필드 데이터를 가지고 있는 목록을 얻습니다.

escape_identifiers($item)
인수:
  • $item (mixed) – The item or array of items to escape
반환값:

The input item(s), escaped

반환형:

mixed

컬럼, 테이블명 같은 SQL 식별자를 이스케이프합니다.

insert_string($table, $data)
인수:
  • $table (string) – The target table
  • $data (array) – An associative array of key/value pairs
반환값:

The SQL INSERT statement, as a string

반환형:

문자열

INSERT 실행 구문을 생성합니다.

update_string($table, $data, $where)
인수:
  • $table (string) – The target table
  • $data (array) – An associative array of key/value pairs
  • $where (mixed) – The WHERE statement conditions
반환값:

The SQL UPDATE statement, as a string

반환형:

문자열

UPDATE 실행 구문을 생성합니다.

call_function($function)
인수:
  • $function (string) – Function name
반환값:

The function result

반환형:

문자열

platform agnostic wrapper 를 이용하여 PHP 내장함수를 실행합니다.

cache_set_path([$path = ''])
인수:
  • $path (string) – Path to the cache directory
반환형:

void

캐싱 저장소를 사용하기 위한 디렉토리 경로를 설정합니다.

cache_on()
반환값:TRUE if caching is on, FALSE if not
반환형:bool

디비 결과 캐싱을 활성화 합니다.

cache_off()
반환값:TRUE if caching is on, FALSE if not
반환형:bool

디비 결과 캐싱을 비활성화 합니다.

cache_delete([$segment_one = ''[, $segment_two = '']])
인수:
  • $segment_one (string) – First URI segment
  • $segment_two (string) – Second URI segment
반환값:

TRUE on success, FALSE on failure

반환형:

bool

특정 URI 와 관계된 캐시 파일을 삭제합니다.

cache_delete_all()
반환값:TRUE on success, FALSE on failure
반환형:bool

모든 캐시 파일을 삭제합니다.

close()
반환형:void

DB 연결을 닫습니다.

display_error([$error = ''[, $swap = ''[, $native = FALSE]]])
인수:
  • $error (string) – The error message
  • $swap (string) – Any “swap” values
  • $native (bool) – Whether to localize the message
반환형:

void

반환값:

Displays the DB error screensends the application/views/errors/error_db.php template

반환형:

문자열

에러 메세지를 보여주고, 스크립트 실행을 중지합니다.

메세지는 application/views/errors/error_db.php 템플릿을 이용해 보여집니다.

protect_identifiers($item[, $prefix_single = FALSE[, $protect_identifiers = NULL[, $field_exists = TRUE]]])
인수:
  • $item (string) – The item to work with
  • $prefix_single (bool) – Whether to apply the dbprefix even if the input item is a single identifier
  • $protect_identifiers (bool) – Whether to quote identifiers
  • $field_exists (bool) – Whether the supplied item contains a field name or not
반환값:

The modified item

반환형:

문자열

(선택적으로 Alias를 포함할 수 있는) 열 또는 테이블 이름을 사용하고 여기에 구성된 dbprefix 을 적용합니다.

경로를 포함한 컬럼 이름을 다루기 위해 어떤 로직이 필요합니다.

이와 같은 쿼리를 봅시다:

SELECT * FROM hostname.database.table.column AS c FROM hostname.database.table

Alias 를 이용한 쿼리:

SELECT m.member_id, m.member_name FROM members AS m

컬럼 명은 최대 4개(host, DB, table, column) 또는 접두어 를 포함할 수 있기 때문에, 우리는이 문제를 파악하고 적절한 위치에 (있는 경우) 테이블 접두사를 삽입하고 올바른 식별자만을 구별하기 위해 약간의 작업을 할 필요가있습니다.

이 방법은 쿼리 빌더 클래스에서 광범위하게 사용됩니다.