【澳门葡京备用网址】CodeIgniter框架学习要点,CI中的url相关函数以及路由设置和伪静态技术

  CI中的顶尖对象就是日前控制器对象,它提供了成百上千性质,可以经过var_dump($this)打印全数的一级对象;

以下内容从兄弟连的CI教学录像中摘要:

  要使用CI中的数据库操作,首先大家应当在CI的
application/config/databass.php
文件中配置数据库音讯,平时就是布局主机名,用户名,密码,数据库名,表前缀(dbprefix);

  当使用CI框架举行开发时,我们的一些数额传递的U中华VL不该写死,可以使用如下方法;比如说我们需求表单提交八个数据;

    load可以精通为二个加载器,加载了许多效应,可以领悟为当你使用
$this -> load
之后CI自动帮您new了一个loader类的目的实例,然后你就可以调用load里面封装的种种措施(函数),具体的函数可以在CI文件目录下的system/core/Loader.php文件中查看;

  CI提供了一个database的类,可是并不默认装载,须要手动加载;$this
-> load ->database() ;也足以在application/config/autoload.php中的
$autoload[‘libraries’] = array( ‘database’ )
配置数据库的自动加载,配置完之后就不须求每回使用db类都加载batabase;

    1.在controller控制器中大家必要先成立一个加载helper和视图的不二法门;

    $this -> load -> 

 

  装载成功后会放入到极品对象的属性中;使用$this -> db
对象操作数据库;

        eg:pubulic fuction add(){

       view()       //装载视图;


  关于数据的询问;

            $this -> load -> helper( ‘ url ’
);  //首先加载 helper( ‘url’ )
到一级对象中,site_url函数在helper的帮手函数中;

       vars()      //分配变量到视图;

 

    $sql = “select * from 表名”;先创制一条SQL语句;

            $this -> load -> view( ‘ user/add ‘
)  //其次加载视图文件;

       database()    //装载数据库操作对象;

Codeigniter框架

    $res = $this -> db -> query( $sql );
CI当中使用数据库专擅认同再次回到的是多少个目标,而不是能源;等价于mysql_fetch_object();

澳门葡京备用网址,          }

       model()     //装载模型;

 

    $user = $res ->
result();使用对象中的result方法取出能源;能够在随意页面使用$res ->
result();命令归来财富,再次来到的财富是以数组的花样再次回到的,数组里面是一个3个的靶子;

    2.创办三个insert方法来接受post提交的数目;

 


    也得以将回来的数组保存在二个变量中 $data[ ‘ user_list ‘ ] =
$users  通过 $this -> load -> view( ‘ xxx/xxx.php ‘,$data )
来将数据传输;

    3.末尾就可以在view视图中应用site_url函数生成U索罗德L地址

    uri也是CI提供的三个类公事,里面封装了部分有关ULX570L相关一些分析的函数,具体的函数可以在CI文件目录下的system/core/U奇骏I.php文件中查看

 

    $user = $res -> resut_array()
;固然不期望回到的是目的,那条命令是将能源以二维数组(里面是涉嫌数组)的款式再次回到;

        <form action = ” <?php echo site_url( ‘
user/insert ‘ )> ” method=”post”>

    $this -> uri ->

                                                                           
讲师:邹义良

    $res ->
row();以目的的花样重返第壹,条数据;(做用户登陆查询判定时可用);

  官方的文档中是那般表明的;

      segment()      //用于获取url上某一段的参数;CI中的传递参数并非古板的pathinfo形式,该函数获取U途睿欧L中的某一段上的数目;如下图所示,当您需求取得182时则$this->uri->segment(3);就足以博得到182以此值,以此类推只须求转移segment里面的参数就足以获取到对应段的值;

                                                                   
微博:weibo.com/it266

  具体的参数可以在CI的法定手册中查阅;

    依照安顿文件重回您的站点 USportageL 。index.php
(获取其它你在配置文件中装置的 index_page 参数) 将会蕴藏在你的 U路虎极光L
中,其余再拉长你传给函数的 UPAJEROI
参数,以及陈设文件中装置的 url_suffix 参数。

      平时情形下一般为:入口文件.php/控制器/方法/a参数/b参数/c参数

 

  当有财富须要操作多个数据库时,可以在CI的
application/config/databass.php 文件中拷贝一份 { defualt }
参数配置数据库并修改那些参数,之后在$this -> load -> database(
参数名 ) 装载数据库时带上修改后的参数;

    推荐在其余时候都选拔那种艺术来生成你的 UPRADOL ,那样在你的 U帕杰罗L
变动时你的代码将全部可移植性;

      澳门葡京备用网址 1


  澳门葡京备用网址 2

  site_url(控制器/方法);该函数重返项目根目录的url ;

    input输入类,里面封装了一部分输入类函数,具体的函数可以在CI文件目录下的system/core/Input.php文件中查看

驷马难追内容

  关于数据的丰富/删除/修改(例子写的是加上,删除和修改只需求转移sql语句即可);

  也足以依照需要配置helper资助函数url的活动加载,不过不引进应用,如url使用频仍可采用;具体安插操作如下;

    $this -> input ->

 

    首先须求加载数据库类 $this -> load ->database;

    在application/config/autoload.php中查找到$autoload[‘ helper ‘]
= array( ‘url’ )进行安排;

      post()      等价于原生PHP中的 $_POST[ ‘  ‘ ] ;

    CI简介

    $sql = ” insert into 表名 (字段,字段) value (‘ 值 ’,‘ 值 ’) ”
;创造一条SQL语句;

  路由设置,伪静态,隐藏入口文件

      server      等价于原生PHP中的 $_SERVER[ ‘ ‘ ] ;

 

    $this -> db ->
query($sql);和mysql操作相似,不管怎么着查询都以用query建立;

    在application/config/routes.php文件中查找到$route[ ‘
default_contorller ‘ ] = “welcome”
;进行配置,暗许配置是welcom控制器;

    在CI中直接使用$_POST也是足以一直接受到客户端提交的参数,但ci提供的input类会有一对简单易行的汉中处理机制;

    深远MVC设计格局

    if($bool){      //平时大家插入参数之后会打印出八个受影响行数和自增ID;

    伪静态技术:

  在view视图里可以一贯动用$this访问一流对象;

 

      echo $this -> db -> affected
rows();  //那条语句打印出受影响行数;等价于mysql_affected_rows();

      CI中的伪静态常常是在application/config/routes.php文件中写一段正则表明式来形成;

 

    CI中的控制器与视图

      echo $this -> db ->
insert_id();    //这条语句打印出自增ID;等价于mysql_insert_id();

        eg : $route[ ‘ news / [/d]{6} / ([\d] + )\.html ‘
] = ‘article/show/$1’;

 

    }

        //当输入
时则会访问到
主机名/入口文件/article/show/4  //(随便输伍个数)(那里4是传的参数);    

    CI中的一流对象

  关于提交数据来操作数据库安全性的难题;

      有正则表达式在中等扶助,可以使url任意彰显成你想呈现的url;

 

    平时大家从表单得到多个字段并三番五次数据库查询时(大部分使用查询时利用,增删改会调用A中华V操作来缓解安全性的难点),可以经过以下措施扩张安全性;

    隐藏入口文件:

    数据库访问

    $data=array(

      首先要在 apache/conf/httpd.conf 文件中装置 LoadModule
rewrite_module modules/mod_rewrite.so
裁撤注释,重启apache;再新建七个文件文件另存为,文件名输入”.htaccess”保存放入CI根目录下(由于.htaccess文件不能直接创造),再在.htaccess文件中输入以下内容即可;

 

      $data = $this -> input -> post(“xxx”);

      <Ifmodule mod_rewrite.c>

    AR模型

      $data = $this -> input -> post(“xxx”);

        RewriteEngine on

 

    );

【澳门葡京备用网址】CodeIgniter框架学习要点,CI中的url相关函数以及路由设置和伪静态技术。        RewriteCond %{REQUEST_FILENAME} ! -d

    怎么着扩展CI的控制器

    $sql = ” select * from 表名 where 字段= ? , 字段 = ? “;

        RewriteCond %{REQUEST_FILENAME} ! -f

 

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

        RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

    模型

  关于表前缀的难题;

      </Ifmodule>

    url相关函数

    在CI中拍卖表前缀的标题依然比较简单的,在application/config/databass.php
文件中有一个[ ‘ swap_pre ‘ ]
参数,只需求在内部写死贰个表前缀,全数的SQL语句的表前缀都写死成[ ‘
swap_pre ’ ]以此参数,那一个参数会自动的将自个儿替换来[ ‘ dbprefix ‘
]的参数,当更换了数据库或表时,大家则不必要在sql语句中一条条修改表前缀,只须求在布置文件中修改[
‘ dbprefix ‘ ]本条表前缀,如图所示;

    设置路由

    澳门葡京备用网址 3

    分页

  ACRUISER连贯操作;

    文件上传

    select id,name from tableName where id>=3 order by id desc
limit 2,3;//这里limit是跳过两条查第2、条数据;

    Session

    下边是一条SQL查询语句,用CI中的AGL450连贯操作是这样写的;

    验证码

    $res = $this -> db -> select( ‘ id,name ‘ )

    表单验证

        ->from( ‘ user ’ )

 

        ->where(‘id >=’ , 3)      //那里id
>=,id与符号之间自然要有空格;

 

        ->limit( 3 , 2
)        //跳过第壹条查第二条,在CI中limit是扭曲的,应该写成3,2而不是2,3;


        ->get();

CI是什么?

    $res ->
result();          //最终是用result函数调用;

    CodeIgniter是二个轻量级但功效强大的PHP框架

    echo $this -> db ->
last_query();    //查询最终一次sql语句,最终echo出来会发现和价值观的sql语句是同样的;

    基于MVC设计格局,提供了一套丰硕的类库

    倘若对安全性有必要,可以行使以下操作举办多少查询;如果安全必要更高的话就拔取方面大家关系的使用db里面的query方法问号绑定查询;

    简单易学,高效实用

    澳门葡京备用网址 4

 

 

官方网站

 

    www.codeigniter.com

    

 

    

普通话网站

    http://codeigniter.org.cn

 

下载当前最新版本

    CodeIgniter_2.1.4.zip

    (甘休2014.7.1风行版为3.0.0——小编注)

 

有何特点?

    你想要三个细密的框架

    你须要杰出的习性

    你必要广泛包容标准主机上的各类 PHP 版本和配备

        CI 2.1.4 需要PHP5.1.6

    你想要三个大概只需 0 配置的框架

    你想要3个不需使用其余命令符的框架

    你想要3个不需坚守限制性编码规则的框架

    你不指望被迫学习一门模板语言(即使可以采取你喜欢的模板解析器)

    你不欣赏复杂,热爱简单

    你须求显然,完整的文档

 

目录结构表明

    license.txt  许可协商

    user_guide  用户手册

    syste  框架核心文件

    application  应用目录

    index.php  入口文件

 


MVC

 

 

    1.入口文本

        唯一二个让浏览器直接呼吁的剧本文件

    2.控制器

        协调模型和视图

    3.模型

        提供数据,保存数据

    4.视图

        只担负突显

        表单…

    5.动作action

        是控制器中的方法,用于被浏览器请求

 

 

CI中的MVC

 

    访问url使用的是pathinfo

    入口文件.php/控制器/动作

    application目录中:

        controllers 控制器

        models  模型

        views  视图

    暗中认同控制器是welcome

    暗中同意动作是index

 

 

控制器

 

    1.不必要加后缀

    2.文书名全副大写    例如  user.php

    3.颇具的控制器,间接或直接接轨自CI_Controller类

    4.控制器中,对动作(方法)须要:

        public

        不能以_开头

 

 

视图

 

    1.在控制器中一经加载视图

        //直接写视图名字,不写扩张名,如若有子目录,则写上目录名

    2.视图中,直接接纳原生PHP代码

    3.引进使用

        <?php foreach($list as $item);?>

        <?=$item[‘name’]?>

        <?php endforeach;?>

 

 

一级对象

 

    当前的控制器对象

    提供了不少特性:

 

    $this->load

        装载器类的实例 system/core/loader.php

        装载器类提供的法门:

        view()    装载视图

        vars()    分配变量到视图

        database() 装载数据库操作对象

        model()   装载模型对象

        helper()

 

    $this->uri

        是CI_U福睿斯I类的实例 system/core/UPRADOI.php

        CI_U昂科拉I类提供的措施:

        segment()用于获取uri中的参数

 

        古板的:入口文件.php/控制器/动作/参数1/值1/参数2/值2

        入口文件.php/控制器/动作/值1/值2

 

        echo $this->segment(3);//值1

        echo $this->segment(4);//值2

 

        //index.php/控制器/index/6

        public function index($p=0){    echo $p;//输出6

        }

 

    $this->input

        输入类

        是CI_U本田CR-VI类的实例 system/core/input.php

        CI_U中华VI类提供的艺术:

       
$this->input->post(‘username’);  //等价于$_POST[‘username’];

       
$this->input->server(‘DOCUMENT_ROOT’); //等价于$_SERVER[‘DOCUMENT_ROOT’];        

        $this->input->server(‘REMOTE_ADDR’);

   在视图中,直接用$this来访问一级对象中的属性

 

 

数据库访问

 

    修改配置文件

    application/config/database.php

    将数据库访问对象 装载到极品对象的性质中 $this->db

    $this->load->query($sql);//再次来到对象

 

    $res=$this->db->query($sql);//重返对象

    $res->result();//重临数组,数组中是3个2个的靶子

    $res->result_array();//再次来到二维数组,里面是事关数组

    $res->row()//重回第壹条数据,直接是3个对象

    参数绑定
    $sql=”select * from blog_user where name=?”;
 
  $this->db->query($sql,$name);//倘诺有七个问号时,须求传入二个索引数组

    表前缀
    $db[‘default’][‘dbprefix’] = ‘new_’;
    $db[‘default’][‘swap_pre’] = ‘swap_’;

 
  配置为同样,代码中,直接硬编码表前缀就行了,假设之后项目数据库表前缀发生变化,
    只须要修改$db[‘default’][‘dbprefix’] =
‘new_’;代码中的swap_会自行替换为new_

    db的自动加载
    application\config\autoload.php
    $autoload[‘libraries’] = array(database);
    不需要:$this->load->database();

 

    取自增id

    $this->db->insert_id();

    受影响行数

    $this->db->affected_rows();

 

Active record

 

    1.application/config/database.php

        确保$active_record = TRUE;

    2.application/config/autoload.php

        $autoload[‘libraries’] = array(database);

    3.在安排文件中,正确配置表前缀后,会活动抬高

 

    $res->$this->db->get(‘表名’);//重临结果集对象

    $res->result();

 

    $bool=$this->db->insert(‘表名’,关联数组);

 

    $bool=$this->db->update(‘表名’,关联数组,WHERE条件);

 

    $bool=$this->db->delete(‘表名’,WHERE条件);

 

    //select uid,username from user where uid>=3 order by uid desc
limit 2,3

    $res=$this->db->select(‘uid,username’)

        ->from(‘user’)

        ->where(‘uid >=’,1)

        ->limit(3,2)//跳过2条,取出3条数据

        ->order_by(‘uid desc’)

        ->get();

 

    //彰显最进一条sql语句

    echo $this->db->last_query();

 

    //where

    //$res=$this->db->where(‘username’,’marry’)->get(‘user’);

    //$res=$this->db->where(‘username
!=’,’marry’)->get(‘user’);

    //$res=$this->db->where(‘username’,’marry’)->get(‘user’);

    $res=$this->db->where(array(‘username’=>’hanyile’,’uid
<‘=>3))->get(‘user’);

    echo $this->db->last_query();

 

    复杂的询问请用$this->db->query($sql,$data);//使用问号绑定查询

 

扩展CI控制器

    application/core/MY_Controller.php

    控制器就足以继承自MY_Controller

 

    application/config/config.php

    $config[‘subclass_prefix’] = ‘MY_’;

 

模型

    在模型中,可以向来行使顶级对象中的属性

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website