ci框架(二)
自定義SQL語句????????????????????????????????????????????????????????????????????????????
當提供的API滿足不了我們對SQL語句的要求的時候,我們通常是自己來寫SQL語句,CI也提供了比較強大了,能夠滿足我們需求的一般的sql的API。
$res=$this->db->select('id,name')->from('表名')->whrer('id >=',5)//注意id后面要有個空格->limit(3,2)//這里與sql的limit是順序是反的->order_by('id desc ')->get();//翻譯成sql語句 var_dump($res->result()); echo $this->db->last_query();//先是最近一條SQL自定義擴展控制器??????????????????????????????????????????????????????????????????????????
在application/core中新建MY_Controller.php
class MY_Controller extends CI_Controller {public function __construct(){parent::__construct();//一定呀先調用父類的構造方法//登錄驗證、權限驗證、其他操作。。。 } }同時需要在application/config/config.php中配置一下:
$config['subclass_prefix'] = 'MY_';自定義擴展模型????????????????????????????????????????????????????????????????????????????
在application/models中創建user_model.php
class User_model extends CI_Model {public function getAll(){$res = $this->db->get('表名');return $res->result();} }在控制器中調用自定義模型
application/controllers:
class User extends MY_Controller {public function index(){$this->load->model('User_model');//調用以類名為主,而不是文件名 $list = $this->User_model->getAll();//調用模型獲取數據 $this->load->view('user/index',array('list'=>$list));//加載視圖 } }加載模型的時候可以給模型取一個名字:
$this->load->model('User_model','user');//調用以類名為主,而不是文件名 $list = $this->user->getAll();//調用模型獲取數據Url相關函數?????????????????????????????????????????????????????????????????????????????
在表單驗證的時候,需要把數據傳給控制器,怎么準確的而且可擴展的寫action呢,調用API:
public function addView() {$this->load->helper('url');//為了不把表單傳遞的地址寫死,用url函數$this->load->view('user/add'); }在user/add.php視圖當中:
<form action="<?php echo site_url('user/insert'); ?>" method="post"> <!-- ........--> </form>如果是index.php目錄的話,用:
base_url();這個API。
同時,每次加載url很麻煩,也可是設置成自動加載,在config/config.php中修改:
$config['helper'] = array('url');可能在后面的版本中就沒有這個自動加載了。
路由???????????????????????????????????????????????????????????????????????????????????????????
想要把12.html中的.html刪了怎么辦,這就需要匹配路由規則了(在config/routes.php):
$route['rouxx/showxx/([\d]+)\.html'] = 'rou/show/$1';//插入這句話分頁???????????????????????????????????????????????????????????????????????????????????????????
- 必須知道的一些參數
總共有多少條記錄
一頁要有多少條記錄
總共多少頁
當前頁前后要顯示多少個分頁鏈接
- 設置一些CI分頁類基本參數
- 調用CI的分頁類
- 執行分頁方法
- 輸出分頁鏈接
- 查詢部分數據(limit)
上傳文件????????????????????????????????????????????????????????????????????????????????????
視圖 /views/up.php:
<html><form action="ci/CodeIgniter_2.2.0/index.php/upload/up" method="post" enctype="multipart/form-data"><input type="file" name="upfile" /><input type="submit" name="sub" value="提交" /></form> </html>控制器:
- 定義一個數組,設置一些與上傳相關的參數
還可以設置其他的一些額外參數,詳細看用戶手冊。
- 調用CI的上傳通用類,并執行上傳
- 接收出錯信息或成功信息
Session???????????????????????????????????????????????????????????????????????????????????
利用CI類實現session登錄
- 修改配置文件(config.php)
- 加載SESSION類
- 創建SESSION
- 查看SESSION
- 刪除SESSION
在config.php文件中修改一下配置,便可以對cookie加密:
$config['sess_cookie_name'] = 'ci_session';$config['sess_expiration'] = 7200;$config['sess_expire_on_close'] = FALSE;$config['sess_encrypt_cookie'] = TRUE$config['sess_use_database'] = FALSE;$config['sess_table_name'] = 'ci_sessions';$config['sess_match_ip'] = FALSE;$config['sess_match_useragent'] = TRUE;$config['sess_time_to_update'] = 300;- 一次性數據,只能讀取一次
轉載于:https://www.cnblogs.com/yydcdut/p/3849974.html
總結
- 上一篇: ANE打包心得
- 下一篇: 基于SQL的日志分析工具myselect