2015. 9. 4. 16:23ㆍProgramming/CodeIgniter
* 데이터와 관련된 일을 한다. 즉, 데이터 베이스와 연관된 일을 하는 곳이다.
* CI에서 model 기능이 제대로 작동하려면 CI_Model 를 반드시 상속 받아야 한다.
* 실습을 위해서는 반드시 데이터 베이스와 연동이 되어 있어야 한다.
* 설정은 application/config/database.php 에서 설정을 할 수 있다.
- 기본적으로 설정되어야 할 값
$db['default']['hostname'] = 'localhost'; // IP 또는 hostname $db['default']['username'] = 'scott'; $db['default']['password'] = 'tiger'; $db['default']['database'] = 'PROD'; $db['default']['dbdriver'] = 'odbc'; |
- 설정 해주는 라인 위쪽으로 올라가보면 주석처리로 어떤 것들이 지원이 되고 어떤 이름을 넣어야 하는지도 나와 있음.
system/database/drivers 경로에 보면 지원하고 있는 dbdriver 파일들이 있음.
- database.php 파일은 보안상으로 많은 문제를 발생 시킬 수 있기 때문에, 파일에 대한 권한을 좀 더 신경을 써야 함.
git 같은 소스관리 툴을 사용할 때는 ignore가 되도록 해야하며, 여러모로 주의를 기울여야하는 파일임.
* 데이터베이스를 불러오는 방법.
1. application/config/autoload.php 파일에서 $autoload['libraries'] = array('database') 라고 설정.
- 이럴경우 계속적으로 데이터베이스를 불러옴.(테스트는 안해봄)
- 더이상 데이터베이스를 불러오지 않아 편할지는 모르겠으나, DB를 많이 사용하지 않는 페이지이거나, 전혀 사용되지 않 는 페이지들이 DB 사용률 보다 페이지가 더 많이 불러오게 되는 경우는 안좋을 수 있다.
즉, 사용 할 때마나 DB에 접속하는 방법이 좋다. 매번 DB에 접속하는 것보다 사용 할 때만 접속하는 것이 속도에 좋고
DB의 부담도 줄어 들 것이다.
2. 사용 할 때마나 DB에 접속.
- application/models/ 폴더에 ***_model.php를 생성하고 controller 파일에서 제어를 하는 방법.
- 일반적으로 모델 파일명 규칙은 사용될 데이터베이스의 테이블 이름을 사용하고 _model이라고 반드시 붙여준다.
* models/Tablename_model.php
class Tablename_model extends CI_Model { function __construct() { //method 를 초기화 parent::__construct(); // 매번 초기화를 해야하는 method가 있으면 이곳에 추가를 해주면 됨. } public function gets() { //$this->db->query()->result(); 문법. return $this->db->query('SELECT id,name from tablename')->result(); //객체 - result(), 배열 - result_array(), 값이 하나 일 경우 - row() } } |
* controller/topic.php
|
* views/main.php
<? foreach($topics as $entry) { ?> <li><a href="index.php/topic/get/<?=$entry->id?>"><?=$entry->id?></a></li> <? } ?> |
* views/get.php
This is get page.<?=$id?> |
'Programming > CodeIgniter' 카테고리의 다른 글
Model(3/5) - 소스 중복제거 (0) | 2015.09.07 |
---|---|
Model(2/5) - 리스트와 각 리스트 정보 구현 (0) | 2015.09.04 |
View (0) | 2015.09.04 |
Controller (0) | 2015.09.04 |
CodeIgniter와의 규칙? (0) | 2015.09.04 |