데이터베이스 드라이버 레퍼런스

이것은 플랫폼 독립적인 기본 DB 구현 클래스입니다. 이 클래스는 직접 호출되지 않습니다. 대신 특정 데이터베이스를 위한 어댑터 클래스가 이를 확장하고 인스턴스화합니다.

관련 사용 방법은 여러 문서에 나뉘어 있습니다. 이 문서는 그것들에 대한 레퍼런스를 제공합니다.

중요

모든 메소드가 모든 데이터베이스 드라이버에서 지원되는 것은 아닙니다. 기반 드라이버가 지원하지 않는 경우 일부는 실패하고 FALSE를 반환할 수 있습니다.

class CI_DB_driver
initialize()
반환 형식:

void

Throws:

RuntimeException 실패 시

데이터베이스 설정을 초기화하고 데이터베이스에 대한 연결을 설정합니다.

db_connect($persistent = TRUE)
매개변수:
  • $persistent (bool) – 영구 연결을 설정할지 일반 연결을 설정할지 여부

반환:

데이터베이스 연결 리소스/오브젝트 또는 실패 시 FALSE

반환 형식:

mixed

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

참고

반환되는 값은 사용 중인 기반 드라이버에 따라 다릅니다. 예를 들어 ‘mysqli’ 드라이버의 경우 mysqli 인스턴스가 반환됩니다.

db_pconnect()
반환:

데이터베이스 연결 리소스/오브젝트 또는 실패 시 FALSE

반환 형식:

mixed

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

참고

이 메소드는 db_connect(TRUE)의 별칭입니다.

reconnect()
반환:

성공 시 TRUE, 실패 시 FALSE

반환 형식:

bool

서버의 유휴 타임아웃을 초과하는 시간 동안 쿼리가 전송되지 않은 경우 데이터베이스 연결을 유지/재설정합니다.

db_select([$database = ''])
매개변수:
  • $database (string) – 데이터베이스 이름

반환:

성공 시 TRUE, 실패 시 FALSE

반환 형식:

bool

현재 데이터베이스를 선택/전환합니다.

platform()
반환:

플랫폼 이름

반환 형식:

string

사용 중인 플랫폼의 이름(mysql, mssql 등)입니다.

version()
반환:

사용 중인 데이터베이스의 버전

반환 형식:

string

데이터베이스 버전 번호입니다.

query($sql[, $binds = FALSE[, $return_object = NULL]])
매개변수:
  • $sql (string) – 실행할 SQL 문

  • $binds (array) – 바인딩 데이터 배열

  • $return_object (bool) – 결과 오브젝트를 반환할지 여부

반환:

성공한 “쓰기 유형” 쿼리의 경우 TRUE, “쿼리” 성공 시 CI_DB_result 인스턴스(메소드 체이닝), 실패 시 FALSE

반환 형식:

mixed

SQL 쿼리를 실행합니다.

SQL 문자열을 입력으로 받아 “읽기” 유형 쿼리의 성공적인 실행 시 결과 오브젝트를 반환합니다.

반환값:

  • “쓰기 유형” 쿼리의 성공적인 실행 시 불리언 TRUE

  • 실패 시 불리언 FALSE

  • “읽기 유형” 쿼리의 경우 CI_DB_result 오브젝트

simple_query($sql)
매개변수:
  • $sql (string) – 실행할 SQL 문

반환:

기반 드라이버의 “query” 함수가 반환하는 값

반환 형식:

mixed

결과 오브젝트가 필요하지 않거나 쿼리를 데이터베이스에 전송하고 결과에 신경 쓰지 않을 때 사용하기 적합한 query() 메소드의 단순화된 버전입니다.

affected_rows()
반환:

영향을 받은 행 수

반환 형식:

int

마지막으로 실행된 쿼리에 의해 변경된 행의 수를 반환합니다.

마지막으로 실행된 쿼리 동안 생성, 업데이트 또는 삭제된 행의 수를 확인하는 데 유용합니다.

trans_strict([$mode = TRUE])
매개변수:
  • $mode (bool) – Strict 모드 플래그

반환 형식:

void

트랜잭션 “strict” 모드를 활성화/비활성화합니다.

Strict 모드가 활성화되면 여러 트랜잭션 그룹을 실행할 때 하나의 그룹이 실패하면 이후 모든 그룹이 롤백됩니다.

Strict 모드가 비활성화되면 각 그룹이 자율적으로 처리되므로 한 그룹의 실패가 다른 그룹에 영향을 미치지 않습니다.

trans_off()
반환 형식:

void

런타임에 트랜잭션을 비활성화합니다.

trans_start([$test_mode = FALSE])
매개변수:
  • $test_mode (bool) – 테스트 모드 플래그

반환:

성공 시 TRUE, 실패 시 FALSE

반환 형식:

bool

트랜잭션을 시작합니다.

trans_complete()
반환:

성공 시 TRUE, 실패 시 FALSE

반환 형식:

bool

트랜잭션을 완료합니다.

trans_status()
반환:

트랜잭션이 성공하면 TRUE, 실패하면 FALSE

반환 형식:

bool

트랜잭션 상태 플래그를 가져와 실패 여부를 확인할 수 있습니다.

trans_active()
반환:

트랜잭션이 활성 상태이면 TRUE, 그렇지 않으면 FALSE

반환 형식:

bool

트랜잭션이 현재 활성 상태인지 확인합니다.

compile_binds($sql, $binds)
매개변수:
  • $sql (string) – SQL 문

  • $binds (array) – 바인딩 데이터 배열

반환:

업데이트된 SQL 문

반환 형식:

string

전달된 바인딩 값으로 SQL 쿼리를 컴파일합니다.

is_write_type($sql)
매개변수:
  • $sql (string) – SQL 문

반환:

SQL 문이 “쓰기 유형”이면 TRUE, 그렇지 않으면 FALSE

반환 형식:

bool

쿼리가 “쓰기” 유형(INSERT, UPDATE, DELETE 등)인지 “읽기” 유형(즉, SELECT)인지 확인합니다.

elapsed_time([$decimals = 6])
매개변수:
  • $decimals (int) – 소수점 자릿수

반환:

집계 쿼리 경과 시간(마이크로초)

반환 형식:

string

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

total_queries()
반환:

지금까지 실행된 총 쿼리 수

반환 형식:

int

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

last_query()
반환:

마지막으로 실행된 쿼리

반환 형식:

string

마지막으로 실행된 쿼리를 반환합니다.

escape($str)
매개변수:
  • $str (mixed) – 이스케이프할 값 또는 여러 값의 배열

반환:

이스케이프된 값

반환 형식:

mixed

불리언과 NULL을 포함하여 유형에 따라 입력 데이터를 이스케이프합니다.

escape_str($str[, $like = FALSE])
매개변수:
  • $str (mixed) – 문자열 값 또는 여러 값의 배열

  • $like (bool) – 문자열이 LIKE 조건에 사용될지 여부

반환:

이스케이프된 문자열

반환 형식:

mixed

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

경고

반환된 문자열에는 따옴표가 포함되지 않습니다.

escape_like_str($str)
매개변수:
  • $str (mixed) – 문자열 값 또는 여러 값의 배열

반환:

이스케이프된 문자열

반환 형식:

mixed

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

escape_str()과 유사하지만 LIKE 조건에서 오탐을 방지하기 위해 %_ 와일드카드 문자도 이스케이프합니다.

중요

escape_like_str() 메소드는 LIKE 조건에 대한 특수 문자를 이스케이프하기 위해 ‘!’(느낌표)를 사용합니다. 이 메소드는 직접 따옴표로 묶을 부분 문자열을 이스케이프하기 때문에 ESCAPE '!' 조건을 자동으로 추가할 수 없으므로 수동으로 해야 합니다.

primary($table)
매개변수:
  • $table (string) – 테이블 이름

반환:

기본 키 이름 또는 없으면 FALSE

반환 형식:

string

테이블의 기본 키를 검색합니다.

참고

데이터베이스 플랫폼이 기본 키 감지를 지원하지 않는 경우 첫 번째 열 이름이 기본 키로 가정될 수 있습니다.

count_all([$table = ''])
매개변수:
  • $table (string) – 테이블 이름

반환:

지정된 테이블의 행 수

반환 형식:

int

테이블의 총 행 수를 반환하거나, 테이블이 제공되지 않으면 0을 반환합니다.

list_tables([$constrain_by_prefix = FALSE])
매개변수:
  • $constrain_by_prefix (bool) – 구성된 dbprefix로 테이블 이름을 매칭할지 TRUE

반환:

테이블 이름 배열 또는 실패 시 FALSE

반환 형식:

array

현재 데이터베이스의 테이블 목록을 가져옵니다.

table_exists($table_name)
매개변수:
  • $table_name (string) – 테이블 이름

반환:

테이블이 존재하면 TRUE, 그렇지 않으면 FALSE

반환 형식:

bool

특정 테이블이 존재하는지 확인합니다.

list_fields($table)
매개변수:
  • $table (string) – 테이블 이름

반환:

필드 이름 배열 또는 실패 시 FALSE

반환 형식:

array

테이블의 필드 이름 목록을 가져옵니다.

field_exists($field_name, $table_name)
매개변수:
  • $table_name (string) – 테이블 이름

  • $field_name (string) – 필드 이름

반환:

해당 테이블에 필드가 존재하면 TRUE, 그렇지 않으면 FALSE

반환 형식:

bool

특정 필드가 존재하는지 확인합니다.

field_data($table)
매개변수:
  • $table (string) – 테이블 이름

반환:

필드 데이터 항목 배열 또는 실패 시 FALSE

반환 형식:

array

테이블에 대한 필드 데이터를 포함하는 목록을 가져옵니다.

escape_identifiers($item, $split = TRUE)
매개변수:
  • $item (mixed) – 이스케이프할 항목 또는 항목 배열

  • $split (bool) – 점이 발견될 때 식별자를 분리할지 여부

반환:

입력 항목(들), 이스케이프됨

반환 형식:

mixed

열, 테이블, 이름과 같은 SQL 식별자를 이스케이프합니다.

insert_string($table, $data)
매개변수:
  • $table (string) – 대상 테이블

  • $data (array) – 키/값 쌍의 연관 배열

반환:

문자열로서의 SQL INSERT 문

반환 형식:

string

INSERT 문 문자열을 생성합니다.

update_string($table, $data, $where)
매개변수:
  • $table (string) – 대상 테이블

  • $data (array) – 키/값 쌍의 연관 배열

  • $where (mixed) – WHERE 문 조건

반환:

문자열로서의 SQL UPDATE 문

반환 형식:

string

UPDATE 문 문자열을 생성합니다.

call_function($function)
매개변수:
  • $function (string) – 함수 이름

반환:

함수 결과

반환 형식:

string

플랫폼에 구애받지 않는 래퍼를 사용하여 네이티브 PHP 함수를 실행합니다.

cache_set_path([$path = ''])
매개변수:
  • $path (string) – 캐시 디렉터리 경로

반환 형식:

void

캐싱 저장소에 사용할 디렉터리 경로를 설정합니다.

cache_on()
반환:

캐싱이 켜져 있으면 TRUE, 그렇지 않으면 FALSE

반환 형식:

bool

데이터베이스 결과 캐싱을 활성화합니다.

cache_off()
반환:

캐싱이 켜져 있으면 TRUE, 그렇지 않으면 FALSE

반환 형식:

bool

데이터베이스 결과 캐싱을 비활성화합니다.

cache_delete([$segment_one = ''[, $segment_two = '']])
매개변수:
  • $segment_one (string) – 첫 번째 URI 세그먼트

  • $segment_two (string) – 두 번째 URI 세그먼트

반환:

성공 시 TRUE, 실패 시 FALSE

반환 형식:

bool

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

cache_delete_all()
반환:

성공 시 TRUE, 실패 시 FALSE

반환 형식:

bool

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

close()
반환 형식:

void

데이터베이스 연결을 닫습니다.

display_error([$error = ''[, $swap = ''[, $native = FALSE]]])
매개변수:
  • $error (string) – 에러 메시지

  • $swap (string) – 모든 “swap” 값

  • $native (bool) – 메시지를 지역화할지 여부

반환 형식:

void

반환:

DB 오류 화면을 표시하고 application/views/errors/error_db.php 템플릿을 전송합니다

반환 형식:

string

에러 메시지를 표시하고 스크립트 실행을 중지합니다.

메시지는 application/views/errors/error_db.php 템플릿을 사용하여 표시됩니다.

protect_identifiers($item[, $prefix_single = FALSE[, $protect_identifiers = NULL[, $field_exists = TRUE]]])
매개변수:
  • $item (string) – 작업할 항목

  • $prefix_single (bool) – 입력 항목이 단일 식별자인 경우에도 dbprefix를 적용할지 여부

  • $protect_identifiers (bool) – 식별자를 인용할지 여부

  • $field_exists (bool) – 제공된 항목에 필드 이름이 포함되어 있는지 여부

반환:

수정된 항목

반환 형식:

string

열 또는 테이블 이름(선택적으로 별칭 포함)을 받아 구성된 dbprefix를 적용합니다.

경로를 포함하는 열 이름을 처리하기 위해 일부 로직이 필요합니다.

다음과 같은 쿼리를 고려하세요:

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

또는 별칭이 있는 쿼리:

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

열 이름에 최대 4개의 세그먼트(호스트, DB, 테이블, 열)가 포함될 수 있거나 별칭 접두사가 있을 수 있으므로, 이를 파악하고 적절한 위치에 테이블 접두사 (존재하는 경우)를 삽입하며 올바른 식별자만 이스케이프하기 위해 약간의 작업이 필요합니다.

이 메소드는 Query Builder 클래스에서 광범위하게 사용됩니다.