쿼리 헬퍼 함수들 Query Helper Methods¶
쿼리 실행 정보 Information From Executing a Query¶
$this->db->insert_id()
데이터베이스에 레코드를 삽입할 때 아이디번호.
Note
PostgreSQL 과 함께 PDO 드라이버를 사용하거나, 인터베이스 드라이버를 사용하는 경우, 이 함수는 INSERT ID를 확인하기 위해 적절한 순서를 지정 $name 매개 변수가 필요합니다.
$this->db->affected_rows()
insert, update등 뭔가를 쓰는 형태의 쿼리를 수행할 때 적용된 결과 열 수를 리턴합니다.
Note
MySQL 에서 “DELETE FROM TABLE” 쿼리에 이 함수를 사용하면 0을 리턴하는 경우가 있습니다. 데이터베이스 클래스는 제대로 된 열 수를 리턴하는 방법을 핵(Hack)의 형태로 제공합니다. 기본값은 이 핵이 활성화된 상태이나, 데이터베이스 드라이버파일에서 비활성으로 바꿀 수 있습니다.
$this->db->last_query()
마지막으로 사용한 쿼리 문자열을 리턴합니다(쿼리 실행결과가 아닙니다). 예제:
$str = $this->db->last_query();
// Produces: SELECT * FROM sometable....
Note
데이터베이스 환경설정에서 save_queries 세팅을 비활성화함으로 이 함수를 쓸모 없게 할 수 있습니다.
데이터베이스에 관한 정보 Information About Your Database¶
$this->db->count_all()
특정 테이블의 열 수를 리턴합니다. 테이블 이름을 첫 번째 파라미터로 전달해야 합니다. 예제:
echo $this->db->count_all('my_table');
// Produces an integer, like 25
$this->db->platform()
현재 사용 중인 데이터베이스 플랫폼(MySQL, MS SQL, Postgres, etc...)을 리턴합니다:
echo $this->db->platform();
$this->db->version()
사용 중인 데이터베이스 버전을 리턴합니다:
echo $this->db->version();
쿼리를 쉽게 사용 Making Your Queries Easier¶
$this->db->insert_string()
이 함수는 insert 를 간단하게 해줍니다. 함수를 실행하면, SQL insert 쿼리문을 자동으로 생성하여 리턴해 줍니다 예제:
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$str = $this->db->insert_string('table_name', $data);
첫 번째 파라미터는 테이블 이름이며, 두 번째는 삽입될 데이터의 연관배열 입니다. 위 예제는 아래와 같은 쿼리문자열을 자동으로 생성해 줍니다:
INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@example.com', 'example.com')
Note
값은 자동으로 이스케이프 되어서, 안전한 쿼리를 제공합니다.
$this->db->update_string()
이 함수는 update 를 간단하게 해줍니다.SQL update 문자열을 자동으로 생성해주죠. 예제:
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$where = "author_id = 1 AND status = 'active'";
$str = $this->db->update_string('table_name', $data, $where);
첫 번째 파라미터는 테이블 이름이며, 두 번째 파라미터는 업데이트 되어야할 데이터의 연관배열 입니다. 그리고 세 번째 파라미터는 where 절이 들어갑니다. 위 예제는 아래와 같은 쿼리문자열을 만들어 줍니다:
UPDATE table_name SET name = 'Rick', email = 'rick@example.com', url = 'example.com' WHERE author_id = 1 AND status = 'active'
Note
값은 자동으로 이스케이프 되어서, 안전한 쿼리를 제공합니다.