데이터베이스 드라이버 레퍼런스¶
이것은 플랫폼 독립적인 기본 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 클래스에서 광범위하게 사용됩니다.