CI3框架 查詢 模型例項化

2021-09-26 21:13:06 字數 4540 閱讀 5289

ci模型例項化

$this->load->model('m_sku_channel_stock');//框架原本model檔案下的

呼叫模型方法:

$total = $this->m_sku_channel_stock->query_count();//模型方法

ci3沒有命名空間  如果需要繼承  那麼

除了  框架自動載入model下面的類之外的需要自己  檔案中引用  類似於 

ci資料庫增刪改查

查詢關聯

$db = $this->db;// db封裝類  

$fields = 'step.id as id, step.user_id as user_id,user.nickname as nickname, tip.title as knowledge_title';

$db->select($fields);//需要展示的字段  相關的方法   select_max  select_min select_a** 

$db->where ( array('step.type' => $type)) ;  //直接等於  寫法

$db->where ( array(' step.type < ' => $type));  // 可以直接裡面寫 符號   大於、等於、不等於

$db->where ( 'step.status',  0);   //直接等於  也可以這麼寫

$db->where ( 'step.id <' ,  10 );   //可以直接裡面寫 符號   大於、等於、不等於

$db->where_in('step.id',  array(1, 2, 3, 4));    // in 條件寫法  where_not_in

$value = 12;

$db->where("find_in_set('$value',step.number) !=",  0);  //mysql 有個 find_in_set 搜尋方法

//not_like  or_not_like 

$db->like('title', 'match', 'before');// 生成: where title like '%match' 

$db->like('title', 'match', 'after');// 生成: where title like 'match%'

$db->like('title', 'match', 'both');// 生成: where title like '%match%'

$db->join('user', 'user.id = step.user_id', 'left');//關聯表寫法

$db->join('tip', 'tip.id = step.tip_id', 'left');//關聯表寫法

$db->order_by('step.id','desc'

); //  $this->db->order_by ( '

step.iddesc,

step.user_idasc' );  

$db->limit(12, 10);

$result = $db->get('step');

if ($result === false) else

獲取總條數  簡化

$db = $this->db;// db封裝類  

$fields = 'count(step.id) as num ';

$db->select($fields);//需要展示的字段

$db->where(array('step.type' => $type));//直接等於  寫法

$db->join('user', 'user.id = step.user_id', 'left');//關聯表寫法

$result = $db->get('step')->row_array();

return  $result['num'];//總條數

count_all_results  返回條數

ci框架  封裝了  row  直接  return row->numbers 寫乙個  count_all_results方法  直接獲取條數 返回  int 

查詢sql轉換成查詢方法

select * from step

$this -> db -> get_compiled_select ( 'step' ); 

$this -> db -> get ( 'step');

select * from (`my_table`) where ( `a` = 'a' or ( `b` = 'b' and `c` = 'c' ) ) and `d` = 'd'
$this -> db -> select ( '*' ) -> from ( 'my_table' ) 

-> group_start ()

-> where ( 'a' , 'a' )

-> or_group_start ()

-> where ( 'b' , 'b' )

-> where ( 'c' , 'c' )

-> group_end ()

-> group_end ()

-> where ( 'd', 'd' )

-> get ();

$this->db->group_start()

開始乙個新的條件組,為查詢中的where 條件新增乙個左括號。

$this->db->or_group_start()

開始乙個新的條件組,為查詢中的where 條件新增乙個左括號,並在前面加上or 。

$this->db->not_group_start()

開始乙個新的條件組,為查詢中的where 條件新增乙個左括號,並在前面加上not 。

$this->db->or_not_group_start()

開始乙個新的條件組,為查詢中的where 條件新增乙個左括號,並在前面加上or not 。

$this->db->group_end()

結束當前的條件組,為查詢中的where 條件新增乙個右括號。

1, 插入

單條插入:insert into mytable (`title`, `name`, `date`) values ('my title', 'my name', 'my date')

$data  =  array ( 

'title'  =>  'my title' , 

'name'   =>  'my name' , 

'date'   =>  'my date' 

);1,$this -> db -> set ( $data ) -> get_compiled_insert ( 'mytable' ); 

2,$this -> db -> insert ( 'mytable' ,  $data ); 

批量插入;insert into mytable (title, name, date) values ('my title', 'my name', 'my date'), ( 'another title', 'another name', 'another date')

$data  =  array ( 

array ( 

'title'  =>  'my title' , 

'name'  =>  'my name' , 

'date'  =>  'my date' 

), array ( 

'title'  =>  'another title' , 

'name'  =>  'another name' , 

'date'  =>  'another date' 

) );

$this -> db -> insert_batch ( 'mytable' ,  $data ); 

2,更新

$data  =  array ( 

array ( 

'title'  =>  'my title'  , 

'name'  =>  'my name 2'  , 

'date'  =>  'my date 2' 

), array ( 

'title'  =>  'another title '  , 

'name'  =>  'another name 2'  , 

'date'  =>  'another date 2' 

) );

$this -> db -> update_batch ( 'mytable' ,  $data ,  'title' );

CI3框架 事務例項

事務方法 db get write strict 開啟寫入 data array cancel status 2,cancel time date y m d h i s user courseb id user courseb id,db trans begin 開啟事務 新增 if db ins...

CI3初識 程式分析器

發現ci乙個比較好的功能就是程式分析器 可以列印程式的一些執行時間,消耗記憶體等資訊 這個類無須初始化,如果已按照下面的方式啟用,他將被 輸出類 自動載入。要啟用分析器,你可以在你的 控制器 方法的任何位置新增一行下面的 this output enable profiler true 當啟用之後,...

CI框架資料庫查詢之join用法分析

用 a表中的每個id 去查詢這個 id 在 people 表中的資訊。語句如下 this db from a this db join b sites.id b.id 用 a表中的每個id 去查詢這個 id 在 b表中的資訊。注意sql的約定,如果乙個列名在二張表中是重複的,你需要在列名前加上表名和...