쿼리 헬퍼 함수들(Query Helper Functions)
$this->db->insert_id()
데이터베이스에 레코드를 삽입할때 최종 입력된 레코드의 pk를 반환합니다. (mysql, auto_increment 설정시)
mysql_insert_id()와 동일
$this->db->affected_rows()
insert, update등 뭔가를 쓰는 형태의 쿼리를 수행할때 적용된 결과 열수를 리턴합니다.
주의: MySQL 에서 "DELETE FROM TABLE" 쿼리에 이함수를 사용하면 0을 리턴하는 경우가 있습니다. 데이터베이스 클래스는 제대로된 열수를 리턴하는 방법을 핵(Hack)의 형태로 제공합니다. 기본값은 이 핵이 활성화된 상태이나 , 데이터베이스 드라이버파일에서 비활성으로 바꿀 수 있습니다.
$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();
$this->db->last_query();
마지막으로 사용한 쿼리 문자열을 리턴합니다(쿼리 실행결과가 아닙니다). 예:
$str = $this->db->last_query();
// Produces: SELECT * FROM sometable....
아래 두 함수는 INSERT와 UPDATE를 보다 간단하게 할수있도록 해줍니다.
$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: Values are automatically escaped, producing safer queries.
$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: Values are automatically escaped, producing safer queries.