CI 코드

제목 [예제] 엑티브 레코드 기초 사용
글쓴이 ci세상 작성시각 2009/08/23 12:57:16
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15219   RSS
엑티브 레코드를 쓰면 좋은점

1. DB 방식 단 1초만에 해결
=> mysql 을 사용하다가 mssql 및 오라클로 갈아타는데 쿼리문 수정이 불필요 어댑터 설정만 간단히 바꿔주면 끝~~

2. 심플한 코딩
=> 10줄에 코딩할것을 단 2줄로도 해결 가능

3. 해석이 쉽다
=> 엑티브레코드 메뉴얼만 익히면 어떠한 쿼리문도 쉽게 해석이 가능

4. 보안걱정 뚝!
=> 이스케이프 처리 및 모델파일을 암호화 처리 함으로써 쿼리 유출 방지 가능


메뉴얼

http://codeigniter-kr.org/user_guide/database/active_record.html


DB 스키마
--
-- 테이블 구조 `exampletable`
--

CREATE TABLE IF NOT EXISTS `exampletable` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(20) NOT NULL,
  `current_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

--
-- 테이블의 덤프 데이터 `exampletable`
--

INSERT INTO `exampletable` (`id`, `name`, `current_timestamp`) VALUES
(1, 'test1', '2009-08-23 12:41:21');



DB 접속설정
\system\application\config\database.php

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "apmsetup";
$db['default']['database'] = "test";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

1. 테스트 : 데이터조회 (일반쿼리)

<?php

class Welcome extends Controller {

	function Welcome()
	{
		parent::Controller();	
	}
	
    function index()
    {
        // SQL 쿼리실행
        $query = $this->db->query('select id, name from exampleTable');

        // 결과 표시
        foreach( $query->result() as $row ){

            echo $row->id.'] ';
            echo $row->name;
			echo "<br>";
        
        }

    }
}

/* End of file welcome.php */
/* Location: ./system/application/controllers/welcome.php */
2. 테스트 : 데이터삽입 (일반쿼리)

<?php

class Welcome extends Controller {

	function Welcome()
	{
		parent::Controller();	
	}
	
    function index()
    {

        // 등록하는 데이터
        $name = "test2";

        $SQL = "insert into exampletable (name) values ('$name')";

        // SQL쿼리실행
        $query = $this->db->query($SQL);

    }
}

/* End of file welcome.php */
/* Location: ./system/application/controllers/welcome.php */

3. 테스트 : 데이터조회 (엑티브레코드)

<?php

class Welcome extends Controller {

	function Welcome()
	{
		parent::Controller();	
	}
	
    function index()
    {
        // SQL 쿼리실행
		$this->db->select('id, name');
        $query = $this->db->get('exampleTable');

        // 결과 표시
        foreach( $query->result() as $row ){

            echo $row->id.'] ';
            echo $row->name;
			echo "<br>";
        
        }

    }

}

/* End of file welcome.php */
/* Location: ./system/application/controllers/welcome.php */
4. 테스트 : 데이터삽입 (엑티브레코드)

<?php

class Welcome extends Controller {

	function Welcome()
	{
		parent::Controller();	
	}
	
    function index()
    {
        // 등록하는 데이터
        $name = "test2";

        $this->db->set('name', $name );
		$this->db->insert('exampleTable');

    }

}

/* End of file welcome.php */
/* Location: ./system/application/controllers/welcome.php */

참조 : http://j2k.naver.com/j2k_frame.php/korean/blog.promob.jp/fri/2009/04/codeigniter-1.html#more






 다음글 CI 파일 업로드 버그 (4)
 이전글 [팁] row 갯수파악하여 오류방지코드

댓글

변종원(웅파) / 2009/08/25 16:20:14 / 추천 0
액티브 레크드 쓰면 왜 좋다? 가 한줄 들어가 있으면 금상첨화일 것 같습니다. ^^
ci세상 / 2009/08/25 16:34:41 / 추천 0
제가 이해하는 장점을 여러줄 써보았습니다.^^
변종원(웅파) / 2009/08/25 16:35:34 / 추천 0

와우~ 교과서입니다. ^^

ci세상 / 2009/08/25 17:02:21 / 추천 0
와우 ~~ 제대로 이해한거네요 ㅎㅎ