디비 드라이버 레퍼런스 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) 또는 접두어 를 포함할 수 있기 때문에, 우리는이 문제를 파악하고 적절한 위치에 (있는 경우) 테이블 접두사를 삽입하고 올바른 식별자만을 구별하기 위해 약간의 작업을 할 필요가있습니다.
이 방법은 쿼리 빌더 클래스에서 광범위하게 사용됩니다.