後盾網-CI框架實例教程-馬振宇 - 學習筆記(6)

第六節視頻:6.CI框架學習-實例操做添加欄目如何定義使用模型以及配置數據庫與利用AR增javascript

  本節要點:php

    一、定義模型Modelhtml

    二、輸入類使用java

    三、數據庫配置mysql

    四、使用AR類操做數據庫sql

    五、激活調試模式數據庫

   在application/controllers/admin/category.php欄目管理控制器中:數組

    

// 添加動做
    public function add(){
        //載入表單驗證類庫
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('cate');

        if($status){
           // echo '數據庫操做';
            //首先定義一個模型,也就是說驗證成功,操做模型,而後模型操做數據庫;
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/add_cate.html');
        }

    }

  在application/models/下新建一個模型:category_model.php(注意:定義文件名時必定要加上:_model.php):安全

  操做數據庫app

    一、建立數據庫:

      create database article charset utf8;

      use article;

      create table hd_category(cid int unsigned primary key auto_increment,  //cid做爲主鍵

                  cname varchar(15) not null default ''  //cname做爲欄目名稱,默認爲空;

                      );

      show tables; //查看錶

      desc hd_category;  //查看錶的詳細信息

    二、操做表以前,須要配置數據庫:

      在application/config/database.php下配置:

$active_group = 'default';//項目測試時使用test,向裏面填充一些數據;
$active_record = TRUE;//爲TRUE時,表明其繼承AR模型,(AR模型:system/database/DB_active_rec.php)

$db['default']['hostname'] = '127.0.0.1';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'article';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = 'hd_';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

    三、在application/config/autoload.php中設置自動加載數據庫;

      $autoload['libraries'] = array('database');

--------------------------------------------------------------------------------------------------

   一、在application/models/category_model.php中添加數據庫:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/8
 * Time: 16:40
 */

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

 //欄目管理模型
class Category_model extends CI_Model{

    //添加
    public function add($data){
//        echo 'hello';
        $this ->db->insert('category',$data);//第一個參數爲表名,第二個參數爲傳遞的數組;

    }
}

  在application/controllers/admin/category.php中:

// 添加動做
    public function add(){
        //載入表單驗證類庫
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('cate');

        if($status){
           // echo '數據庫操做';
            //首先定義一個模型,也就是說驗證成功,操做模型,而後模型操做數據庫;

            $data = array(
                'cname' => $_POST['cname'] //cname爲字段名,數組的鍵名也是數據庫的字段名;
            );
            //載入模型
            $this ->load ->model('category_model','cate');//第二個參數爲第一個參數的別名;
            //執行模型裏面的方法
            //$this ->category_model ->add();
            $this ->cate ->add($data);
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/add_cate.html');
        }

    }

  查看數據庫表裏插入的數據:select * from  hd_category;

 

  ===============================================

  輸入類:

    一、爲了安全,預處理輸入數據;

    二、提供helper的一些方法,取得輸入數據,並預處理輸入數據;

    三、防止跨站:$config['global_xss_filtering'] = TRUE;

 

  在system/core/Common.php定義全局函數,會被全局加載:

//下面是自定義函數
/* 格式化打印函數*/
function p($arr){
    echo '<pre>';
    print_r($arr);
    echo '</pre>';

}

/*成功提示函數*/
function success($url,$msg){ //$url表示跳轉地址,$msg表示跳轉提示信息
    header('Content-Type:text/html;charset = utf-8');//防止出現亂碼
    $url = site_url($url);
    echo "<script type='text/javascript'>alert('$msg');location.href = '$url'</script>";
    die;
}

/*錯誤提示信息*/
function error($msg){
    header('Content-Type:text/html;charset = utf-8');
    echo "<script type='text/javascript'>alert('$msg');window.history.back();</script>";
}

 

  附:application/contronllers/admin/category.php:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/8
 * Time: 12:03
 */

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Category extends CI_Controller{

    //查看欄目
    public function index(){
        echo '查看欄目';

    }

    //添加欄目
    public function add_cate(){
        $this ->load ->helper('form');
        $this ->load ->view('admin/add_cate.html');
    }

    // 添加動做
    public function add(){
        //載入表單驗證類庫
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('cate');

        if($status){
           // echo '數據庫操做';
            //首先定義一個模型,也就是說驗證成功,操做模型,而後模型操做數據庫;
            //var_dump($this->input ->post('abc'));die;
//                $this->input->get('name');
//                $a = $this ->input->server('HTTP_HOST');
//                echo $a;
//                p($_SERVER);die;

            //接收數據預處理,更安全;
            $data = array(
               'cname'=>$this->input->post('cname')
            );

//            $data = array(
//                'cname' => $_POST['cname'] //cname爲字段名,數組的鍵名也是數據庫的字段名;
//            );
            //載入模型
            $this ->load ->model('category_model','cate');//第二個參數爲第一個參數的別名;
            //執行模型裏面的方法
            //$this ->category_model ->add();
            $this ->cate ->add($data);

            //成功提示信息
            success('/admin/category/index','添加成功');

        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/add_cate.html');
        }

    }

    //編輯欄目
    public function editor_cate(){
        $this ->load ->helper('form');
        $this ->load ->view('/admin/editor_cate.html');

    }

    //編輯欄目動做
    public function editor(){
        //載入表單驗證類庫
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('cate');

        if($status){
            echo '數據庫操做';
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/editor_cate.html');
        }

    }


}

 附:application/models/category_madel.php:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/8
 * Time: 16:40
 */

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

 //欄目管理模型
class Category_model extends CI_Model{

    //添加
    public function add($data){
//        echo 'hello';
        $this ->db->insert('category',$data);//第一個參數爲表名,第二個參數爲傳遞的數組;

    }
}

 

  激活調試模式:

    $this ->output ->enable_profiler(TRUE);

    會在模板尾部顯示

    將$this ->output ->enable_profiler(TRUE);寫入application/controllers/admin/category;

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/8
 * Time: 12:03
 */

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Category extends CI_Controller{

    //查看欄目
    public function index(){
        echo '查看欄目';

    }

    //添加欄目
    public function add_cate(){
        $this ->output ->enable_profiler(TRUE);//激活調試模式,需注意要載入模板,在模板的底部顯示;
        $this ->load ->helper('form');
        $this ->load ->view('admin/add_cate.html');
    }

    // 添加動做
    public function add(){
        //載入表單驗證類庫
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('cate');

        if($status){
           // echo '數據庫操做';
            //首先定義一個模型,也就是說驗證成功,操做模型,而後模型操做數據庫;
            //var_dump($this->input ->post('abc'));die;
//                $this->input->get('name');
//                $a = $this ->input->server('HTTP_HOST');
//                echo $a;
//                p($_SERVER);die;

            //接收數據預處理,更安全;
            $data = array(
               'cname'=>$this->input->post('cname')
            );

//            $data = array(
//                'cname' => $_POST['cname'] //cname爲字段名,數組的鍵名也是數據庫的字段名;
//            );
            //載入模型
            $this ->load ->model('category_model','cate');//第二個參數爲第一個參數的別名;
            //執行模型裏面的方法
            //$this ->category_model ->add();
            $this ->cate ->add($data);

            //成功提示信息
            success('/admin/category/index','添加成功');

        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/add_cate.html');
        }

    }

    //編輯欄目
    public function editor_cate(){
        $this ->load ->helper('form');
        $this ->load ->view('/admin/editor_cate.html');

    }

    //編輯欄目動做
    public function editor(){
        //載入表單驗證類庫
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('cate');

        if($status){
            echo '數據庫操做';
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/editor_cate.html');
        }

    }


}
相關文章
相關標籤/搜索