データベースのアップグレード
ドキュメント
変更点
CI3 の機能は基本的に CI4 と同じです。
CI3 で知られているデータベースキャッシュ機能は削除されました。
メソッド名がキャメルケースに変更され、クエリビルダー はクエリを実行する前に初期化する必要があります。
アップグレードガイド
データベースの認証情報を app/Config/Database.php に追加してください。オプションは CI3 とほぼ同じですが、一部の名前が少し変更されています。
データベースを使用したすべての場所で、
$this->load->database();
を$db = db_connect();
に置き換える必要があります。複数のデータベースを使用する場合は、次のコードを使用して追加のデータベースをロードしてください
$db = db_connect('group_name');
。ここで、すべてのデータベースクエリを変更する必要があります。ここでの最も重要な変更は、
$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();
に
新しいクエリビルダー クラスを使用するには、ビルダーを
$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);
に
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();