CI是PHP一个比较轻,并且好用的一个框架

分层也是分的比较清晰的一个

这里先展示MODEL 放在application/models 目录下面user_model.php

<?php
class User_model extends CI_Model { public function __construct() {
//parent::__construct();
$this->load->database();
}
//查询全部的数据
public function getAll(){ $query = $this->db->get('staff');
echo 'My-model';
echo '最后一条sql语句是:'.$this->db->last_query();
return $query->result_array(); }
//条件的查询
public function GetLastList(){
$query = $this->db->select('id,admin')
->from('b_staff')
->where('id =',8)
//->where('id >=',8)
//->limit(0,2)
->order_by('id desc ')
->get();
$rs = $query->result_array();
echo '最后一条sql语句是:'.$this->db->last_query();
return $rs; }
//添加数据
public function insertUser(){
$data['admin'] = 'sunzhiiyan0304';
$data['paw'] = '123456';
$insertbool = $this->db->insert('staff',$data);
return $insertbool;
}
//修改数据
public function UpdateUser(){
$data['admin'] = 'sunzhiiyan0304';
$data['paw'] = '123456';
$updatebool = $this->db->update('staff',$data,array('id'=>5));
return $updatebool;
}
//删除
public function DeleteUser(){
$delbool = $this->db->delete('staff',array('id'=>2));
return $delbool;
}
//查询---通过sql语句,不运用封装
public function shower(){
//装载数据库操作类
$this->load->database();
//装载成功后,会放入超级对象的属性中
//var_dump($this->db);
$sql = "select * from b_staff ";
$rs = $this->db->query($sql); //返回的不是资源,对象 $list = $rs->result(); //这里返回的是数组,然后
/* var_dump($list);
var_dump($this->input);
var_dump($this->db);
var_dump($this->uri);
var_dump($this->lang);
var_dump($this->db->model);
var_dump($this->router);*/
return $list;
}
//新增---通过sql语句,不运用封装
public function insertSql(){
$this->load->database();
// $sql = "select * from b_staff ";
// $rs = $this->db->query($sql); //返回的不是资源,对象
//
// var_dump($rs);
// $list = $rs->result(); //这里返回的是数组,然后
// var_dump($list);
// $_POST['name'] = 'sunzhiyan';
//$name = $this->input->post('name');
//echo '$name='.$name;
echo 'sinmzhiayn';
$data['admin'] = 'SSSSS';
$data['paw'] = '123456';
$sql = "insert into b_staff (admin,paw)values(?,?)";
$this->db->query($sql,$data);
}
} ?>

命名还是有要求的,这里就不细说了,主要讲的是一个分层和调用的问题

下面是application/controllers 目录下面的welcome.php 页面

通过http://localhost/CI0.1/index.php/welcome/index

能够进行访问

同事,要想访问这个aciton下面的其他方法的时候

只要需要在http://localhost/CI0.1/index.php/welcome/index 后面将index改成要访问的action调用方法名即可

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

class Welcome extends MY_Controller {

	/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see http://codeigniter.com/user_guide/general/urls.html
*/
public function index()
{
echo '-----------------------';
//数据库已经自动加载了
//其实这里可以不同加载,因为调用model的时候,只要让构造方法去调用就行了
$this->load->database(); /*
//装载分页类
$this->load->library('pagination');
//url路由类
$this->load->helper('url');
//进行配置
//每页显示数据
$page_size = 2;
//配置基础目录
$config['base_url']= site_url('welcome/index');
//一共多少条数据
$config['total_rows'] =7;
//首页
$config['first_link'] = 'SHOU';
$config['next_link'] = 'XIA';
//每页显示的数据
$config['per_page'] = $page_size;
$this->pagination->initialize($config);
//输出按钮
echo $this->pagination->create_links(); $offset = intval($this->uri->segment(3));
$rs = $this->db->query($sql);
$list = $rs->result();
var_dump($list);*/ $this->load->model('User_model');
//查询
$list = $this->User_model->getAll();
//新增
$bool = $this->User_model->insertUser();
//修改
$updatebool = $this->User_model->UpdateUser();
//删除
$delbool = $this->User_model->DeleteUser();
//条件查询
$res = $this->User_model->GetLastList();
//通过sql语句进行查询
$shower = $this->User_model->shower();
//通过sql语句进行新增
$this->User_model->insertSql(); /* var_dump($list);
var_dump($bool);
var_dump($updatebool);
var_dump($delbool);*/
//var_dump($shower); echo '<br>------------------------------------<br>';
var_dump($res);
//$this->aabbcc();
$this->load->view('welcome_message');
}
public function test()
{
echo 'sunzhiyan111';
$this->load->view('nihao');
} public function login(){
echo 'login';
echo md5(uniqid());
//加载session
$this->load->library('session');
$user = array('id'=>3,'name'=>'sunzhiyan');
//注册session
$this->session->set_userdata('user',$user);
//不要在这里获取刚放入的数据
//只有天页面从新加载后才能获取到 }
public function checjlogin(){
$this->load->library('session');
$this->session->userdata('user');
var_dump($user);
}
public function code(){
$this->load->helper('url');
$this->load->helper('captcha');
$vals = array(
// 'word' => 'Random word', /使用自己定义的字符串/
'img_path' => './captcha/', //此目录手动创建
'img_url' => base_url().'/captcha/', // 'font_path' => './path/to/fonts/texb.ttf',
// 'img_width' => '150',
// 'img_height' => 30,
// 'expiration' => 60*10 //过期时间,时间一到自动删除图片
); $cap = create_captcha($vals);
echo $cap['word']; //验证码中的字符串
echo $cap['image']; //输出验证码
//将验证码放入到session中,验证就通过此相等做 } } /* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

CI 模型的使用M与C之间的调用的更多相关文章

  1. Java特性之多态父类与子类之间的调用

    问题描述: Java三大特性,封装.继承.多态,一直没搞懂其中多态是什么,最近研究了一下,关于父类和子类之间的调用.下面是一个测试类,源代码如下: package com.test; public c ...

  2. html iframe 元素之间的调用

    html iframe 元素之间的调用一.简介 一般需要引入一个独立页面的时候,我们会使用iframe.在业务需要的时候,我们需要在父页面与iframe页面之间进行交互.交互的时候,我们就需要使 用到 ...

  3. 两个APP之间怎么调用《IT蓝豹》

    两个app之间怎么调用?   (1):通过显示Intent 启动    首先:配置好B app 的action,即AndroidManifest.xml中声明 <intent-filter> ...

  4. 《同一个类中不同方法之间的调用相关问题(省略的类名或者this)》

    //同一个类中不同方法之间的调用相关问题(省略的类名或者this) class A { public void B() { System.out.println("b方法运行"); ...

  5. JAVA 构造方法之间的调用

    this:看上去,用来区分局部变量和成员变量的情况this:就是代表本类对象,this代表它所在方法所属对象的引用构造方法之间的调用只能通过this语句来完成构造方法之间进行调用时this语句只能出现 ...

  6. Iframe父页面与子页面之间的调用

    原文:Iframe父页面与子页面之间的调用 Iframe父页面与子页面之间的调用 专业词语解释如下:     Iframe:iframe元素是文档中的文档.     window对象: 浏览器会在其打 ...

  7. 使用DLL进行不同语言之间的调用(转)

    源:使用DLL进行不同语言之间的调用 __declspec(dllexport) 是告诉编译器用来导出函数的,在代码中不另作说明了. extern "C" 的意思就是用C的方式来导 ...

  8. dedecms自定义模型之独立模型在首页、列表页、内容调用内容

    dedecms关于自定义模型(独立模型)的首页.列表页.内容怎么调用?在后台自定义模型(独立模型)的建立及自定义字段的添加比较简单,需要注意两点: (1)如果某个字段需要在前台列表页显示,则在前台参数 ...

  9. synchronized修饰的方法之间相互调用

    1:synchronized修饰的方法之间相互调用,执行结果为There hello  ..因为两个方法(main,hello)的synchronized形成了互斥锁.  所以当main方法执行完之后 ...

随机推荐

  1. go程序性能优化

    性能优化总结: 1 尽量避免频繁创建对象,即减少&{},new,make的使用2 数组可当切片用,当需要使用切片时,可考虑能使用数组来减少切片的创建3 当某类临时对象被多个协频繁程使用时,可用 ...

  2. 工作总结:将电脑中的ARP缓存清空黑屏命令

    ARP -d 将电脑中的ARP缓存清空ARP-a  查看arp缓存arp-s   ip与mac绑定

  3. 转:我终于离开了年薪30w的IT行业

    题目乍看起来有点故意惹人眼球的味道,但是对于我事实就是如此,暂且请君听我细细道来!      先自曝家门,我03年毕业,05年来深,06年买车子,06年底结婚,07年买了房子,09年生了儿子,妻子.房 ...

  4. java学习进制转换之查表法

    10进制转16进制,以及10进制转2进制,还有10进制转8进制,这些转换如果按照常规思路的话,会灰常的麻烦. 我们来看一下 10进制转16进制: 假如这里有一个十进制数字:35,我们的需求就是把这个3 ...

  5. linux安装 Android Studio详细教程,支持性较差,需要安装最新底层库内核的linux

    安装 Android Studio详细教程 libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 jdk1.8.0_25 android-st ...

  6. bzoj 1208 宠物收养所--splay

    这个题也是单点维护,不管来的是人还是狗,只要num=0就插入,否则就删除. // File Name: ACM/bzoj/1208.cpp // Author: Zlbing // Created T ...

  7. hdu 4607 Park Visit (dfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 首先如果k小于等于直径长度,那么答案为k−1.如果k大于直径长度,设直径长度为r,那么答案为r− ...

  8. Apache Kylin

    日前,eBay公司隆重宣布已经正式向开源业界推出分布式分析引擎:Kylin(http://kylin.io).作为一套旨在对Hadoop环境下分析流程进行加速.且能够与SQL兼容性工具顺利协作的解决方 ...

  9. typedef struct

    突然忘了这玩意儿了..今天就来搞一发 typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请n ...

  10. ubuntu firefox 选中变成了删除

    在ubuntu下 我的firefox浏览器出现了问题.描述: 1.在firefox中所有能够删除的文字只要选中就自动删除了. 终端中 ibus-setup勾掉在应用窗口中启用内嵌编辑模式