128june

[Codeigniter] Database 설정하기 (Mysql 5.7) 본문

JetBrain/PHP Storm & Codeigniter

[Codeigniter] Database 설정하기 (Mysql 5.7)

128june 2020. 6. 5. 15:34
반응형

1. Codeigniter와 Mysql을 연결하려면 application/config/database.php 파일의 내용을 변경해주어야합니다.

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

$db['default'] = array(
	'dsn'	=> '',
    // 보통은 localhost로 접속할 수 있지만 저는 aws서버의 mysql을 연결하였기 때문에 주소(xxx.xxx.xxx.xxx):포트 로 연결하였습니다!
    'hostname' => '[주소입력]',  // localhost
    'username' => 'june',       // DB에 접속할 user 이름입니다.
    'password' => '1234',       // DB user의 패스워드입니다. 패스워드가 없지 않는 한 반드시 지정하십시오.
    'database' => 'test',       // DB 선택 부분입니다.
	'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
);

주석이 있는 부분을 수정하셨다면 연결을 확인해 봅시다.

 

2. application/controllers 에 Main.php 파일을 만듭니다.

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Main extends CI_Controller {

    function __construct() {
        parent::__construct();

    }

    //index 함수 => "URL/index.php/main" or "URL/index.php/main/index"로 설정
    public function index() {
        // $this->load->model : /application/models 폴더를 탐색
        // model('[modelfile]') : model에는 /application/models에 있는 Main_model.php를 설정  
        // $this->Main_model->test();는 로드된 Main_model.php의 test 함수를 실행
        $this->load->model('Main_model');
        $this->Main_model->test();
    }
}

3. application/models 에 Main_model.php 파일을 만듭니다.

<?php defined('BASEPATH') OR exit('No direct script access allowed');


class Main_model extends CI_model {

    function __construct(){
        parent::__construct();
        //database.php 파일에서 $test(database이름)['test(table이름)'] 설정값 load
        $this->test = $this->load->database('default', TRUE);
    }

    function test() {
        // Database에 query 요청
        $query = $this->test->query("SELECT * FROM test");
        foreach ($query->result_array() as $row)
        {
            echo '번호 : ', $row['num'];
            echo '<br>';
            echo '제목 : ', $row['title'];
            echo '<br>';
        }
    }
}

4. http://localhost/index.php/main/index 페이지에서 결과를 확인합니다.


※ 설정하면서 다양한 오류가 발생하였는데, 제일 막혔던 부분이 mysqli 설치였습니다.

해결방법으로는 php.ini 설정을 수정해야합니다.

 

해결방법

  • 일반적으로는 extension=mysqli  를 주석해제하면 해결됩니다.
  • 다른 방법으로는 extension_dir = "C:/php7/ext" 보다 위에 extension=mysqli 를 작성하는 방법이 있습니다.
  • 그 외에 extension=php_exif.dll / extension=php_mysql.dll / extension=php_mysqli.dll 를 추가로 작성하는 방법이 있습니다.

 

 

 

 

반응형
Comments