php CI框架常用数据库操作

原生sql写法

$sql = "insert into test (age,name) values (18,'苏三')";
$this->db->query($sql); 

简化增删改查 

//增
$this->db->insert('test',['age'=>20]);
//删
$this->db->delete('test',['id'=>5]);
//改
$this->db->update('test',['name'=>'吞吐量'],['id'=>4]);
//查
$this->db->where('id',2)->get('test')->result_array();

排序

$this->db->order_by('id desc')->get('test')->result_array();

分组

$this->db->group_by('age')->get('test')->result_array();

 聚合函数

//获取指定字段最大值
$this->db->select_max('id')->get('test')->result_array();
//获取指定字段最小值
$this->db->select_min('id')->get('test')->result_array();
//获取指定字段平均
$this->db->select_avg('id')->get('test')->result_array();
//获取指定字段求和
$this->db->select_sum('id')->get('test')->result_array();

连表查询

$this->db->select('t1.id,t2.age,t1.name')
->from('test1 t1')
->join('test2 t2', 't1.id = t2.id', 'left')
->get()
->result_array();

分页查询

//页码
$pindex = 1;
//单页展示数
$psize = 2;
//页码加工
$pindex = max($pindex-1,0) * $psize;
//分页查询
$limt = $this->db->limit($psize,$pindex)->get('test')->result_array();

常规条件查询

//or
$this->db->where(['age'=>18,'name'=>'呵呵1'])->or_where('id >',3)->get('test')->result_array();
//in
$this->db->where_in('id',[1,2])->get('test')->result_array();
//not in
$this->db->where_not_in('id',[2,3])->get('test')->result_array();
//like的使用,默认是%关键字%
$this->db->like('name','呵')->get('test')->result_array();

条件查询中括号的使用 

$this->db
->where('age',17)
->group_start()
->like('name','关键字')
->or_like('tag','关键字')
->group_end()
->get('test')->result_array();

批量新增数据

$insert_array = [
    ['name'=>'张三','age'=>18],
    ['name'=>'李四','age'=>20]
];
$this->db->insert_batch('test',$insert_array);

批量修改数据

$update = [
    [ 'id' => 10,'name' => 55],
    [ 'id' => 11,'name' => 13]
];
//这里的id是表格的主键
$this->db->update_batch('test', $update, 'id');

事务

//手工模式(传统模式)
$this->db->trans_begin();
$this->db->trans_rollback();
$this->db->trans_commit();


//简易模式 (不需要每个数据库操作失败都rollback)
$this->db->trans_start();
$this->db->update('test',['deleted'=>1],['id'=>10]);
$this->db->insert('test2',['age'=>20,'name'=>'北方']);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) echo "数据库操作失败";

最终查询输出方式

//输出二维数组
$this->db->get('test')->result_array();
//输出一维数组
$this->db->get('test')->row_array();
//输出指定字段值
$this->db->get('test')->row('id');
//获取查询条件的行数
$this->db->get('test')->num_rows();
//输出二维对象数组
$this->db->get('test')->result();
//返回对象数组
$this->db->get('test')->result_object();
//获取查询条件的第一条数据
$this->db->get('test')->first_row();
//获取查询条件的最后一条数据
$this->db->get('test')->last_row();
//获取表格字段数量
$this->db->get('test')->num_fields();
//返回表格字段
$this->db->get('test')->list_fields();
//返回表格设计
$this->db->get('test')->field_data();

其他 

//输出最后一条执行的sql
$this->db->last_query();
//根据条件得到符合条件的行数
$this->db->where('age',18)->count_all_results('test');
//返回该表的列数(加条件也查全表列数)
$this->db->count_all('test');
//返回最后插入的主键id
$this->db->insert_id();

  

 

posted @ 2024-03-11 21:28  侠岚歌  阅读(41)  评论(0)    收藏  举报