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的約定,如果乙個列名在二張表中是重複的,你需要在列名前加上表名和...