以下内容从兄弟连的CI教学视频中摘抄:

http://codeigniter.org.cn/tutorials/

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

Codeigniter框架

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

讲师:邹义良

微博:weibo.com/it266

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

主要内容

CI简介

深入MVC设计模式

CI中的控制器与视图

CI中的超级对象

数据库访问

AR模型

如何扩展CI的控制器

模型

url相关函数

设置路由

分页

文件上传

Session

验证码

表单验证

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

CI是什么?

CodeIgniter是一个轻量级但功能强大的PHP框架

基于MVC设计模式,提供了一套丰富的类库

简单易学,高效实用

官方网站

www.codeigniter.com

中文网站

http://codeigniter.org.cn

下载当前最新版本

CodeIgniter_2.1.4.zip

(截止2015.7.1最新版为3.0.0——笔者注)

有什么特点?

你想要一个小巧的框架

你需要出色的性能

你需要广泛兼容标准主机上的各种 PHP 版本和配置

CI 2.1.4 需要PHP5.1.6

你想要一个几乎只需 0 配置的框架

你想要一个不需使用任何命令符的框架

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

你不希望被迫学习一门模板语言(虽然可以选择你喜欢的模板解析器)

你不喜欢复杂,热爱简单

你需要清晰,完整的文档

目录结构说明

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_URI类的实例 system/core/URI.php

CI_URI类提供的方法:

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_URI类的实例 system/core/input.php

CI_URI类提供的方法:

$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();//返回数组,数组中是一个一个的对象

$res->result_array();//返回二维数组,里面是关联数组

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

参数绑定
    $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_';

模型

在模型中,可以直接使用超级对象中的属性

CodeIgniter框架学习要点的更多相关文章

  1. CodeIgniter框架——知识要点汇总

    NO1.学习要点: 一.CodeIgniter 框架的简介 二.CodeIgniter 框架的安装 三.CodeIgniter 框架的目录结构分析 四.CodeIgniter 框架是如何工作的? 五. ...

  2. CodeIgniter 框架---学习笔记

    1.输出sql语句:echo $this->db->last_query();

  3. 学习CodeIgniter框架之旅(一)自定义模板目录

    在常用的框架本身都已经做好了分层和目录结构,但这在很多时候不满足项目的需求甚至在某些情况下变得不合理,因此很多时候需要自定义目录结构,在此就看看如果在CodeIgniter框架中自定义模板目录: 在C ...

  4. 【C#】第3章学习要点(一)--整体把握

    分类:C#.VS2015 创建日期:2016-06-18 使用教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.使用别人已经设计好的类简化你的代码编写工作量 当让你去 ...

  5. CodeIgniter框架入门教程——第三课 URL及ajax

    本文转载自:http://www.softeng.cn/?p=74 这节课讲一下CI框架的路由规则,以及如何在CI框架下实现ajax功能. 首先,先介绍CI框架的路由规则,因为CI框架是在PHP的基础 ...

  6. CI(CodeIgniter)框架入门教程——第二课 初始MVC

    本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...

  7. ***PHP中error_reporting()用法详解(含codeigniter框架中屏蔽错误提示的解决方案)

    php中我们对错误的处理会常用到error_reporting函数了,大家可以看到最多的是error_reporting(E_ALL ^ E_NOTICE)了,这个到底什么意思呢,下面我来来看看. e ...

  8. CodeIgniter框架入门教程——第一课 Hello World!

    本文转载自:http://www.softeng.cn/?p=45 今天开始,我将在这里连载由我自己编写的<CodeIgniter框架入门教程>,首先,这篇教程的读着应该是有PHP基础的编 ...

  9. CodeIgniter框架中关于URL(index.php)的那些事

    最近,在做自己的个人网站时,采用了轻量级的php框架CodeIgniter.乍一看上去,代码清晰简洁,MVC模型非常容易维护.开发时我采用的工具是Netbeans IDE 8.0,当然,本文的内容和开 ...

随机推荐

  1. 如何使标签a处于不可用状态

    今天做项目的时候突然发现a标签下用disabled无法使它的点击事件失效(貌似ie下可以,没有测试过), 首先说一下项目要求,点击a标签(点击之后以防多次快速点击,这里需要点击后使标签a实现),触发a ...

  2. orcale 之 存储过程

    之前我们学习过 PL/SQL, 那么当我们的工作中我们通过 PL/SQL 做很多的事情,那么有一个问题,在每次的座同样一件事的时候是不是都需要重新通过 PL/SQL 去完成呢?可不可以只写一次然后,在 ...

  3. div 移动

    2011-05-12 10:10 jquery实现DIV层拖动 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...

  4. 问题集录05--ajax跨域问题

    由于最近项目中用到json作为系统间交互的手段,自然就伴随着众多ajax请求,随之而来的就是要解决ajax的跨域问题.本篇将讲述一个小白从遇到跨域不知道是跨域问题,到知道是跨域问题不知道如何解决,再到 ...

  5. Splunk数据处理

    0.提要 本篇主要从技术层面针对Splunk Enterprise中关于数据处理的概念.过程与部件进行了概要性总结. 1.数据管理基本概念 索引(index):Splunk用于存储事件的数据仓库: 索 ...

  6. out参数

             out参数: 参数在方法的内部必须为其赋值:可以同时返回不同类型的值:                           在Main方法里定义,在方法里赋值:          输 ...

  7. easyui表单校验拓展

    /** * Created by chaozhou on 2016/5/30. */ /** * 扩展的基本校验规则, */ $.extend($.fn.validatebox.defaults.ru ...

  8. VS编译完成后自动复制到远程机器

    缘起 最近在调试网络通信,每次一有点小修改,都要将程序从开发机复制到测试机,不胜烦扰.既然我们程序猿,为什么要那么死板呢,能够用代码解决的问题,就不要用手去解决. 解决过程 复制 手工复制外有没有其他 ...

  9. 记录一次Spring Data Solr相关的错误解决

    记录一次Spring Data Solr相关的错误解决 生活本不易,流人遂自安 相信大家也使用过SpringDataSolr,但是在最新版的SpringDataSolr 4.0.5 RELEASE中有 ...

  10. 用c+libcurl+PCRE写爬虫2--好用的正则表达式

    写爬虫最重要的就是正则表达式的处理(爬出来的数据的筛选,清洗,过滤等操作). 通过一篇文章 http://blog.csdn.net/quaful/article/details/6460880 来确 ...