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