카테고리 없음

CodeIgniter 데이터베이스(Database) 시작하기

광82 2023. 7. 12. 11:28
반응형

설명


 

이제 간단하지만, MVC 모델 전부를 설명했습니다.

 

이번에는 모델(Models)에서 데이터베이스(Database)에 있는 데이터를 가져오는 간단한 예제를 통해,

데이터베이스를 연결하는 기본적인 방법을 알아보도록 하겠습니다.

* 간단한 방법만을 정리했기 때문에, 상세한 방법을 알고 싶으시면 [링크]를 참고하여 주시기 바랍니다.

 

이전에 모델(Models) 예제를 기준으로 예제를 작성하도록 하겠습니다.

 

▶준비하기


 

데이터베이스(Database)에 members 테이블 추가 및 데이터 입력

-- 테이블 추가
CREATE TABLE `members` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(128) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 데이터 추가
INSERT INTO members (name) VALUES ('Edward') , ('Alex');

 

테이블 데이터 확인

 id name 
 1  Edward 
  2  Alex 

 

 

▶예제 (Example)


 

데이터베이스(Database) 값 설정

application/config/database.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// ...... Database Setting Comment

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'	=> '',
    'hostname' => 'localhost',
    'username' => 'yourname',
    'password' => 'yourpassword',
    'database' => 'yourdb',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

db배열 안에 데이터베이스(Database) 연결 값을 설정합니다.

 

모델(Models) 수정

application/models/Member_model.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
    
class Member_model extends CI_Model {
    
    public function __construct()
    {
        parent::__construct();
    }

    public function GetMembers()
    {
        $this->load->database();
        $result = $this->db->query('SELECT id, name FROM members')->result();
        $this->db->close();

        return $result;
    }
}
  • 컨트롤러(Controllers)에서 모델(Models)을 사용하는 부분은 변동 사항이 없습니다.
  • 13번째줄 : 데이터베이스(Database) 설정에 맞추어 데이터베이스를 로드합니다.
    * 데이터베이스 설정 파일에서 active_group에 설정된 데이터베이스 정보로 연결해줍니다.
  • 14번째줄 : 데이터베이스(Database)에 쿼리를 보내고 그 결과를 객체(Object)로 반환 해 주는 코드입니다.
  • 15번째줄 : 보통 데이터베이스(Database)에 대한 연결을 자동으로 끊어주지만, 해당 코드는 수동으로 데이터베이스(Database) 연결을 끊어주는 코드입니다.

 

뷰(Views) 수정

application/views/Tutorial/members.php

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Member</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach($members as $member) :?>
                <tr>
                    <td><?=$member->id?></td>
                    <td><?=$member->name?></td>
                </tr>
            <?php endforeach ?>
        </tbody>
    </table>
</body>
</html>

 

확인

http://localhost/ci/Tutorial/Members

 

반응형