제목 | 액티브레코드 쿼리 문 개체를 저장하거나 쿼리문장을 받아올수 있는지 궁금합니다. | ||
---|---|---|---|
글쓴이 | 봉남이 | 작성시각 | 2010/03/13 00:36:30 |
|
|||
안녕하세요~ 코드 이그나이터 액티브레코드, 상당히 편리하네요 ㅎㅎ 보안적인면 걱정도 덜어주고, 사용법도 간단하구요. 특히, 가변적인 조건의 쿼리문장을 만들땐.. 뭐.. 반복문에 ->like, ->where 이 중복되니 이건뭐 아주좋습니다ㅋㅋ 다음 코드는 도움말에 있는 쿼리문장입니다.
$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');
$query = $this->db->get();
// 생성결과:
// SELECT * FROM blogs
// JOIN comments ON comments.id = blogs.id
1. 여기서,
"SELECT * FROM blogs JOIN comments ON comments.id = blogs.id"
이것. 코드이그나이터가 각종 조건을 조합하여 작성한 쿼리문장을 알아내는 함수나 방법이 있는지 궁금합니다.
2. 또한
$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');
$query = $this->db->get(); //이상태에서"ㄱ부분"
// 아래 문장을 실행후
$this->db->select('title, content, date');
$this->db->from('mytable');
$query = $this->db->get();
을 한다면 $this->db 는 새로운 결과셋 개체를 갖게되는데,
"ㄱ부분"의(당시의) 쿼리개체를 다른 변수에 담아 보존하여 이후 문구에서 쓸 수 있는지 궁금합니다.
$this->db->start_cache(); // 액티브레코드 캐싱을하면 이전의 이전의쿼리셋에 누적하여 쿼리문이 작성되는것 같았습니다..
3.
$query->num_rows() 를 통해 레코드의 개수를 알아오고
$query->result() 를 해보면 조회된 결과를 뽑아낼 수 있는데,
만약 $query->result() 를 하지 않는경우..
DB에 쿼리되는문장이 궁금합니다..
딱. $query->num_rows() == count(*) 인것인지
아니면, select *, count(*) 이 의미인지 말이죵..
페이징을 하려면 1.전체 자료양을 구하고, 2. 그중 일부의 자료로 범위를 제한해야하는데
$query->num_rows() 이과정에서 아싸리 select * 까지하면 쫌 거시기다 싶은데 말이죠 ㅎ $query->result() 이 요청될때 비로소 select 컬럼을 하는것인지요..?
초면에 -_ㅡ 약간은 불손한듯 많은것을 여쭙네요 -.,-
앞으론 종종 답글도 달도록 하겠습니다 ㅎㅎ
읽어주셔서 고맙습니다.. 꾸벅
|
|||
다음글 | 페이지네이션 질문 좀 드립니다. (2) | ||
이전글 | uploadify 쓰시는분들 'script' 부분에 /... (9) | ||
사월
/
2010/03/13 04:51:47 /
추천
0
|
봉남이
/
2010/03/13 09:12:08 /
추천
0
사월님의 가르침 감사합니다.. ^^;
|
태양이
/
2010/03/13 17:57:26 /
추천
0
1. http://codeigniter-kr.org/user_guide/database/helpers.html
$this->db->last_query();마지막으로 사용한 쿼리 문자열을 리턴합니다(쿼리 실행결과가 아닙니다). 예: $str = $this->db->last_query();
|
봉남이
/
2010/03/14 17:40:55 /
추천
0
우왓.. 태양이님 정답 고맙습니다 ^^//
2번.. 쿼리개체를 $qo = new $this->db() 머시기 이래서 저장할 수 없는게 쫌 아쉽긴하네용 ㅎ; |
http://www.codeigniter-kr.org/user_guide/general/profiling.html
2. get()을 날리면 기존 셋팅이 지워지게되고, 말씀하신 start_cache()를 쓰면 유지가 됩니다.
3. mysql인 경우 mysql_num_rows()를 사용합니다. mysql_result.php 파일에 정의돼있구요.
그럼.. (_ _ )