国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CodeIgniter筆記

Michael_Lin / 962人閱讀

摘要:移除中的開啟的模塊,在項目目錄中新建文件,添加如下內容獲取超級對象使用輔助函數一般情況下,輔助函數位于或者目錄目錄下。模型命名規則類名的第一個字母必須大寫,其余部分小寫。文件名和類名應該一致。

移除URL中的index.php

開啟Apache的mod_rewrite模塊,在項目目錄中新建.htaccess 文件,添加如下內容

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
獲取CI超級對象
$CI = & get_instance()
$version_id = $CI->config->item("version_id");
使用輔助函數

一般情況下,輔助函數位于 system/helpers 或者 application/helpers 目錄 目錄下。
加載 URL 輔助函數 ,它的文件名為 xxx_helper.php

public function use_help()
{
    //加載單個
    $this->load->helper("url");
    //加載輔助函數,單個或多個
    // 路徑:applicationhelpersdemo_helper.php 和 applicationhelpers	est_helper.php
    // $this->load->helper(["demo","test"]);
    echo site_url();
    echo base_url();
}
擴展輔助函數

要擴展原始的 數組輔助函數 ,首先你要創建一個文件 application/helpers/MY_array_helper.php,然后在文件中添加或重寫函數。

https://codeigniter.org.cn/user_guide/general/helpers.html
設置自定義前綴

用于擴展輔助函數的文件名前綴和擴展類庫和核心類是一樣的。要自定義這個前綴,你可以打開 application/config/config.php 文件然后找到這項:

$config["subclass_prefix"] = "MY_";
使用codeigniter類庫

所有的系統類庫都位于 system/libraries/ 目錄下,大多數情況下,在使用之前, 你要先在 控制器 中初始化它,使用下面的方法

//加載類庫
$this->load->library("encrypt");
//使用加載的類庫
$tt  =  $this->encrypt->encode("123","132");
創建自己的類庫

自定義的類庫文件應該放置在 application/libraries 目錄下,當你初始化類時,CodeIgniter 會在這個目錄下尋找這些類。
備注:

文件名首字母必須大寫,例如:Myclass.php
類名定義首字母必須大寫,例如:class Myclass
類名和文件名必須一致

例如


使用

public function use_custom_library()
{
    //創建自定義類庫
    $this->load->library("someclass");
    echo $this->someclass->some_class(x);//目錄:libraries/service/emr.php,例如:$this->load->("service");調用$this->service->emr->some_fun();
}
擴展原生類庫

要擴展原生的類庫,只需要新建一個文件,以MY_開頭繼承原類庫即可,示例:要擴展原Email類庫,只需命名為 application/libraries/MY_Email.php , 然后定義你的類


替換原生類庫

要替換原類庫文件,只需定義與原生的類庫命名完全一樣,例如, 要替換掉原生的 Email 類的話,你要新建一個 application/libraries/Email.php 文件, 然后定義定義你的類:


更多參考

https://codeigniter.org.cn/user_guide/general/creating_libraries.html
控制器

控制器文件保存到 application/controllers/ 目錄下。
控制器命名規則

1.`文件名`必須是大寫字母開頭,如:"Demo.php" 。
2.`類名`必須以`大寫`字母開頭。

示例:

load->view("welcome_message");
   }
}
模型

模型類位于你的 application/models/ 目錄下。

模型命名規則

1.類名的第一個字母 必須`大寫`,其余部分小寫。
2.文件名和類名應該一致。

例如,創建一個Demo_model.php,路徑:applicationmodelsDemo_model.php

db->get("demo", 2);
        return $query->result_array();
    }

    /**
     * 插入記錄
     */
    public function insert_record($data)
    {
        $this->name = $data["name"];
        $this->age  = $data["age"];
        $this->addr = $data["addr"];

        $this->db->insert("demo", $this);
    }

    /**
     * 更新記錄
     */
    public function update_record($data)
    {
        $this->name = $data["name"];
        $this->age  = $data["age"];
        $this->addr = $data["addr"];
        $this->db->update("demo", $this, array("id" => $data["id"]));
    }
}

在控制器調用

class demo extends CI_Controller
{
    public function use_model()
    {
        $data = [
            "name" => "Daiod",
            "age" => 24,
            "addr" => "Chigo",
//            "id" => 8
        ];
        //加載model
        $this->load->model("demo_model");
//        $this->load->model("demo/test","demoModel"); //如果model下有子目錄,則$this->load->model("xxx/xxx");
        //給model定義別名
        $this->load->model("demo_model","demoModel");

        //調用model中的方法 $this->model_name->method();
//        $res = $this->demo_model->get_last_two_record();
        $res = $this->demoModel->get_last_two_record();
        print_r($res);
        //插入記錄
//        $this->demo_model->insert_record($data);
        //使用demo_model的別名
//        $this->demoModel->insert_record($data);
        //更新
//        $this->demo_model->update_record($data);
    }
}
打印日志

修改config.php文件

/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
|  0 = Disables logging, Error logging TURNED OFF
|  1 = Error Messages (including PHP errors)
|  2 = Debug Messages
|  3 = Informational Messages
|  4 = All Messages
|
*/
$config["log_threshold"] = 1; //默認為0,這里修改錯誤級別 error,debug,info

使用

public function log_write()
{
    //打印日志,與配置文件中設置錯誤級別對應
    log_message("error", "this is error messages");
    log_message("debug", "this is debug messages");
    log_message("info", "this is debug messages");
    echo "
"; }
數據庫操作 配置

配置文件路徑:CodeIgniterapplicationconfigdatabase.php
自動連接,需要修改CodeIgniterapplicationconfigautoload.php文件,

$autoload["libraries"] = array();
//修改為
$autoload["libraries"] = array("database");

手動連接

$this->load->database();
操作

查詢

public function select()
{
    # 獲取表中所有記錄
    $query = $this->db->get("demo");
    //等價于
    $query = $this->db->query("select * from demo");
    //返回所有記錄的的數組
    $data = $query->result_array();
    //返回所有記錄的的數組對象
    $data = $query->result();

    //條件查詢
    $data = $this->db->select("name", "addr")
        ->from("demo")
        ->where("name = "xiaoli"")  // ->where("id >=", 1)
        ->limit(2)
        ->order_by("age")
        ->get()
        ->result_array();//返回數組
    //where條件
    //where(array("name"=>"mary", "id >"=>"1")); 表示name字段值是mary并且id字段值是1
    //where("name", "mary")或where("name =", "mary"); 表示查詢條件是name字段值是mary

    //row() 只返回一行記錄,返回的是一個對象
    $data = $query->row();

    #row_array() 只返回一行記錄,返回的是一個數組
    $data = $query->row_array();

    //num_rows() 返回查詢結果行數
    $data = $query->num_rows();

    //num_fields() 返回查詢請求的字段個數
    $data = $query->num_fields();

    //free_result() 釋放當前查詢所占用的內存并刪除關聯資源標識
    $data = $query->free_result();

    print_r($data);
    #返回最后運行的查詢Sql語句
    echo $this->db->last_query(); //select * from demo

    #獲取插入的自增Id
    echo $this->db->insert_id();

    //寫入和更新操作被影響的行數
    echo $this->db->affected_rows();

    //返回指定表的總行數
    echo $this->db->count_all("demo");

    //輸出當前的數據庫版本號
    echo $this->db->version();

    //輸出當前的數據庫平臺
    echo $this->db->platform(); //mysqli

    //查詢語句
    $this->db->select("column1","column2"); //選擇查詢的字段
    $this->db->get("table_name"); //表示SELECT * FROM table_name
    $this->db->get("table_name", 10, 20); //參數2表示每頁記錄數(limit),參數3表示偏移(offset),SELECT * FROM table_name LIMIT 20, 10
    $this->db->select_max();//可接受兩個參數,參數2表示別名
    $this->db->select_min();//同上
    $this->db->select_avg();//同上
    $this->db->select_sum();//同上
    $this->db->from("table_name");//選擇表名
    $this->db->join("table2","table2.pid=table.id","left");//$this->db->from("table1");
    $this->db->get_where();
    //示例
    $this->db->get_where("table_name", array("id" => $id), $limit, $offset);
    $this->db->where("字段","值");// where 字段 = "值";或者where("id >",2);
    $this->db->or_where();//子句OR 連接
    $this->db->where_in("xx",["xx","xx"]);// where_in("username",["Joe","Lucy","Lily"]);
    $this->db->or_where_in("xx",["xx","xx"]);
    $this->db->where_not_in();
    $this->db->or_where_not_in();
    $this->db->like("title","match");// where title like "%match%";參數3表示before(%match),after(match%),none(match)默認為both
    //示例
    $array = array("title" => $match, "page1" => $match, "page2" => $match);
    $this->db->like($array);
    // WHERE title LIKE "%match%" AND page1 LIKE "%match%" AND page2 LIKE "%match%"

    $this->db->or_like(); //OR連接

    $this->db->not_like();
    $this->db->or_not_like();
    $this->db->group_by();
    $this->db->distinct();
    $this->db->having();
    $this->db->or_having();
    $this->db->order_by();
    $this->db->limit();
    $this->db->count_all_results();
}

插入

public function add()
{
    //插入數據,被插入的數據會被自動轉換和過濾,例如:
    $data = array("name" => "xiaoming", "age" => 23, "addr" => "chognqing");
    $this->db->insert("demo", $data);//insert_batch()插入多條,$data為二維數組
}

更新

    public function update()
    {
//        $data = array("name" => "xiaoming", "age" => 26, "addr" => "shanghai");
//        $where = "name = "xiaoming"";
//        $this->db->update("demo", $data, $where);//demo為表名
        //或者
//        $this->db->where("id", 6);
//        $this->db->update("demo", $data);
        //或者 $this->db->set("key","value");
        $data = ["name" => "nihao"];
        $bool = $this->db->update("demo", $data, ["id" => 3]); //update_batch()
        //修改id為3的記錄name修改為nihao
        var_dump($bool);//成功則返回TURE
    }

刪除

    public function del()
    {
//        $this->db->where("id", 6);
//        $this->db->delete("demo");
        //等價于
        $bool = $this->db->delete("demo",array("id"=>5));//返回布爾值

    }
操作session
// 使用session
$this->load->library("session");
// 設置session
$data = array(
    "username"  => "johndoe",
    "email"     => "johndoe@some-site.com",
    "logged_in" => TRUE
);
// 設置時間, 也可在config.php中設置
$this->session->sess_expiration = "14400";
// 僅添加一個值
$this->session->set_userdata("info", $data);
// 添加多個值
// $this->session->set_userdata($data);
// 檢查某個 session 值是否存在
$this->session->has_userdata("info");
// 獲取session
$info = $this->session->userdata("info");
// or
$info = $this->session->info;
// 刪除單個session
$this->session->unset_userdata("info");
// 同時刪除多個值
// $array_items = array("username", "email");
// $this->session->unset_userdata($array_items);
操作cookie
// 加載輔助函數
$this->load->helper("cookie");
// 添加cookie
setcookie("name", "lds", 86500);
// or
$this->input->set_cookie("name", "lds", 60);

// 獲取cookie
$name = get_cookie("name");

// 刪除一條 Cookie
delete_cookie("name");
// 刪除多條 Cookie
delete_cookie(["name", "email"]);

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31229.html

相關文章

  • Codeigniter 4.0-dev 版源碼學習筆記之三——核心文件 Codeigniter.ph

    摘要:行,是否強制訪問。行,嘗試處理此次請求,詳細見方法。至此,的執行主流程完畢。小結是的核心文件,它被調用后,完成了諸多的主流程操作。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 前言 Codeigniter.php 是 CI 4 的核心所在,在這里接收并處理了 request 請求,安全檢查,緩存處理, URL 解析以及路由匹配,執行過濾器,加載運行 Controll...

    alighters 評論0 收藏0
  • Codeigniter 4.0-dev 版源碼學習筆記之四——詳細路由過程

    摘要:行,判斷如果為空,那么返回默認路由。行,把處理完畢后找到的返回。方法該方法是自動按著約定規則去目錄去找路由的過程。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 前言 我個人覺得在當前 MVC 流行的架構下,要想去了解一個框架,或者是一個基于此架構下的應用程序,最好的入手方式就是先看路由,雖然路由不是 MVC 里的任何一個,但是知道了路由的來龍去脈就知道了整個框架或者...

    NSFish 評論0 收藏0
  • Codeigniter 4.0-dev 版源碼學習筆記之二——入口以及初始化操作

    摘要:通過這個函數可以很方便的在程序運行期間執行很多常見操作。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 index.php index.php 是整個框架的入口文件,也就是說所有的請求都要從它這里開始。因為 index.php 源碼非常簡潔,那么我們直接放一張源碼截圖,按著截圖說一下源碼。 showImg(https://segmentfault.com/img/re...

    _ivan 評論0 收藏0
  • Codeigniter 4.0-dev 版源碼學習筆記之一——前言以及 CI 4 預覽

    摘要:版權聲明可轉載,但不論任何媒體都需要在轉載前與本人溝通,并在轉載時注明出處。的各個核心模塊以模塊名為目錄名分別存儲在這個目錄下。下一篇文章會涉及到和。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 寫在前面: 為什么選擇開發過程中的 CI 4 作為源碼解讀版本:(1)首先我選 CI 是因為它之前的穩定版都是相對比較輕量小巧的,而且可以認為是簡單的。(2)為什么沒有選...

    MSchumi 評論0 收藏0
  • Codeigniter 4.0-dev 版源碼學習筆記之六——控制器

    摘要:控制器嚴格來說,這個是控制器父類的源碼。在中,控制器僅負責接到返回的組裝的頁面字符串,并回核心中,由核心再處理后續事宜。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 前言 其實一開始我是很糾結是否要寫控制器的源碼分析的,因為控制器的源碼太少了,少到你不相信這是一個 MVC 里的一個重頭。直覺里,大家都覺得控制器作為各個請求的入口,其后端應該有很多很多的代碼支撐才可以...

    asce1885 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<