ci框架學習告一段落,總結一下

wps_clip_image-16907

從網上弄了一張框架學習思惟導圖,從圖中就能夠看出ci用了設計模式中的MVC架構,使得用起來很簡單方便 php

用了大概兩個星期開發了一個《文章管理系統》以爲開發過程當中學到了不少,挺不錯的,並且在學習過程當中, mysql

不斷進取,不斷學習是前進的動力。 sql

如今大概講下ci的理解: 數據庫

ci包括models controllers views ,下載ci框架包後須要的就是aplication systerm(ci框架包) index.php總入口。 設計模式

數據庫訪問 數組

1. 修改配置文件: 安全

Application-àconfig à database.php 架構

注意:若是同時有多個數據庫時可將defalut 那塊代碼複製一遍 app

2. 在控制器中裝載數據庫操做類 $this->load->database() (是能夠指點函數的當有多個數據庫)後 框架自動加載數據庫操做類驅動(app/config/autoload.php)到超級對象屬性db中  框架

設置自動加載數據庫操做類: applicationàconfig->autoload.php

3. 數據獲取 

$reslut=$this->db->query(); //結果是一個對象database文件夾下全部類的對象

$result->result();//一個一個的數組對象 相似 mysql_fetch_object();

$result->result_array();//返回二維數組裏面是關聯數組

$result->row();//取第一條數據是對象 

$result->row_array();//返回數組

4. 數據添加

        $result=$this->db->query();//同mysql操做函數同樣 返回值是布爾

$this->insert_id();//返回增長的主鍵id 

$this->affeched_rows();//受影響的記錄條數

安全提高:
第一步:設定表前綴  application->config->database.php能夠用一個常量來替換全部的表前綴 配置成相同的方便之後項目的維護修改

第二步:綁定數據 

例如將insert中 字段值列表用 ?代替 執行sql時將須要添加的數據封裝到索引數組中

 

AR模型

1.開啓AR模型後可使用 model類中一系列的方法 

若是是從新解壓CI框架文件 須要:

1. 設置數據庫操做函數:application/config/database.php 進行設置

2開啓對數據庫的自動加載 :application /config/autoload.php $autoload['libraries'] = array('database');

2. 若是肯定使用AR模型的話必須肯定在數據操做類(database)的配置文件中肯定 支持AR模型: app/config/database.php   $active_record = TRUE;

3. 設置表前綴

Application/config/database.php 設置了表前綴後會自動加載前綴

4. 加載AR模型後可使用mysql_result數據處理

增長數據:

$this->db->insert(‘表名’,關聯數組);// 返回值爲布爾;

刪除數據:

$this->db->delete(‘表名’,條件關聯數組);

修改數據:

$this->db->update(‘表名’,修改值得關聯數組,條件的關聯數組);

查詢數據:

$result=$this->db->get(‘表名’);//等同於tp中的select()返回值是資源

$result->result();

查詢數據的連環操做:

方式一:

$this->db->select(‘name,password’)//字段列表  不是tp中的select()方法

->from(‘表名’)//不加表前綴

->where(‘id >=’,3)//條件列表

->limit(2,3); //ci中limit方法中 開始位置和取值長度與sql相反

->order_by(‘tiaojian’);//

->get();

方式二:

$this->db->where(‘id =’,1)->get(‘表名’)

$this->db->where(array(‘id’=>1,’name !=’=>’臭妮’))->get(‘表名’)

查看上一條sql:echo last_query();

注意:若是是複雜的查詢採用

$this->db->query($sql,$data);

5. AR模型之控制器的擴展:

Application/core下新建擴展的控制器文件

Class MY_Controller extends CI_Controller{

Public function __construct(){

Parent::__constuct();

//登錄 權限的驗證

}

注:CI中 控制器的前綴的能夠進行修改  application /config文件中能夠進行修改

 

CI框架能夠自動實例化一些對象,而且把它放在超級對象的屬性中

超級對象的屬性:

CI裝載器($this->loader)能夠當作 $Object=new CI_loader();$this->load=$Object;能夠裝載的操做有:

   view() 裝載視圖  也可用來裝載文件

   vars() 裝載分配的變量

   database()裝載數據庫操做對象

   model() 裝載模型對象

   helper()裝載輔助函數

路由解析($this->uri) 能夠當作 $Object=new CI_URI(); $this->uri=$Object;

  ci框架的路由是分段截取的 參數爲1-開始位置 入口文件.php/值1/值2/ (與tp框架不一樣的是ci框架路由僅有值無名)

   CI框架的路由參數獲取方式

方法一:

        segment() 特色:很便捷可是路由參數的順序變得很重要  

方法二:

public function index($a,$b)  經過參數來獲取路由的參數 特色:必需要有默認值參數順序一樣很重要 

客戶端信息提取($this->input)

$this->input->post(); 

$this->input->server();

e.存放的是目錄爲view

f.視圖文件的加載方式:$this->load->view();視圖文件名稱不加後綴亦可寫子目錄

        d.視圖文件中混編php代碼

h.變量分配的問題 $this->load->vars('title','這是標題'); 若是多變量分配將經過關聯數組 $array['title'] $date['list']=$list 視圖頁 echo $title

d.網站開發規範 應將頭尾等公共部分分別放在文件中方便加載

 

 

控制器:

a.保證控制器類名稱與控制器類文件名稱同樣(且文件名稱大小問題由於人們輸入習慣而變成了小寫)無後綴 類名.php

b.全部的控制器直接或間接繼承CI_Controller類

c.方法屬性爲 public時可被訪問 

d.控制器的對象:超級對象($this 當前類的當前對象) 可在控制器的任意方法中打印超級對象

相關文章
相關標籤/搜索