Upgrade Database

Documentations

변경된 사항

  • CI3의 기능은 기본적으로 CI4와 동일합니다.

  • 메서드 이름이 camelCase로 변경되었으며 쿼리를 실행하려면 쿼리 빌더를 초기화해야 합니다.

Upgrade Guide

  1. 데이터베이스 자격 증명을 app/Config/Database.php에 추가합니다. 옵션은 CI3와 거의 동일하며 일부 이름이 약간 바뀌었습니다.

  2. 데이터베이스를 사용하는 모든 곳에서 $this->load->database();$db = db_connect();로 대체해야 합니다.

  3. 여러 데이터베이스를 사용하는 경우 $db = db_connect('group_name');를 사용하여 추가 데이터베이스를 로드합니다.

  4. 이제 모든 데이터베이스 쿼리를 변경해야 합니다. 여기서 가장 중요한 변화는 $this->db$db로 대체하고 메소드명과 $db를 조정하는 것입니다. 다음은 몇 가지 예입니다.

    • $this->db->query('YOUR QUERY HERE');$db->query('YOUR QUERY HERE');

    • $this->db->simple_query('YOUR QUERY')$db->simpleQuery('YOUR QUERY')

    • $this->db->escape("something")$db->escape("something");

    • $this->db->affected_rows();$db->affectedRows();

    • $query->result();$query->getResult();

    • $query->result_array();$query->getResultArray();

    • echo $this->db->count_all('my_table');echo $db->table('my_table')->countAll();

  5. 새로운 쿼리 빌더 클래스를 사용하려면 빌더 $builder = $db->table('mytable');로 초기화해야 $builder에서 쿼리를 실행할 수 있습니다. 다음은 몇 가지 예입니다.

    • $this->db->get()$builder->get();

    • $this->db->get_where('mytable', array('id' => $id), $limit, $offset);$builder->getWhere(['id' => $id], $limit, $offset);

    • $this->db->select('title, content, date');$builder->select('title, content, date');

    • $this->db->select_max('age');$builder->selectMax('age');

    • $this->db->join('comments', 'comments.id = blogs.id');$builder->join('comments', 'comments.id = blogs.id');

    • $this->db->having('user_id',  45);$builder->having('user_id',  45);

Code Example

CodeIgniter Version 3.x

<?php

$query = $this->db->select('title')
             ->where('id', $id)
             ->limit(10, 20)
             ->get('mytable');

CodeIgniter Version 4.x

<?php

$builder = $db->table('mytable');

$query = $builder->select('title')
    ->where('id', $id)
    ->limit(10, 20)
    ->get();