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. Node.js回调概念

    什么是回调? 回调是一个异步等效的功能.在完成特定任务回调函数被调用. Node大量使用了回调.Node的所有的API都支持回调这样的一种方式. 例如,一个函数读取一个文件可能开始读取文件,并使得下一 ...

  2. BZOJ 1200 木梳

    Description Input 第一行为整数L,其中4≤L≤100000,且有50%的数据满足L≤104,表示木板下侧直线段的长.第二行为L个正整数A1,A2,…,AL,其中Ai≤108 Outp ...

  3. Unity3d项目合作 场景的合并和还原

    Unity3d项目合作  场景的合并和还原 特别声明:转载自Unity3D研究院 如何侵犯版权,请通知我删除! 摘要: 导出Unity场景的所有游戏对象信息,一种是XML一种是JSON.本篇文章我们把 ...

  4. Cylinder

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2374 思路:三分枚举. #include &l ...

  5. 23个经典JDK设计模式(转)

    下面是JDK中有关23个经典设计模式的示例: Structural(结构模式) Adapter: 把一个接口或是类变成另外一种. o    ● java.util.Arrays#asList() o  ...

  6. Unity NGUI Tween的用法

    unity版本:4.5 NGUI版本:3.6.5 参考链接:http://www.colabug.com/thread-1029974-1-1.html,作者:COLABUG.COM 橘虞   htt ...

  7. 图论(2-sat):Priest John's Busiest Day

    Priest John's Busiest Day   Description John is the only priest in his town. September 1st is the Jo ...

  8. 杂题 UVAoj 10000 Longest Paths

      Longest Paths  It is a well known fact that some people do not have their social abilities complet ...

  9. android导入项目出错处理

    问题: 执行Import-Android下的Existing Android Code Into Workspace 解决方法:

  10. 356. Line Reflection

    首先找到X方向的中点,如果中点是一个点,那么分别从这个点开始往左右找就行:如果是一个区间,比如1 2之间,那么首先总点数得是偶数,然后以1和2往左右两边找就行.. 找的时候,有3种情况: 同时没找到, ...