データベースのアップグレード

ドキュメント

変更点

アップグレードガイド

  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);

  6. CI4 は CI3 で知られていた データベースキャッシュ層を提供しないため、結果をキャッシュする必要がある場合は、代わりに キャッシュドライバー を使用してください。

コード例

CodeIgniter バージョン 3.x

<?php

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

CodeIgniter バージョン 4.x

<?php

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

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