升级数据库
文档
变更内容
升级指南
将数据库凭据添加到 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);
代码示例
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();