CI 模型的使用M与C之间的调用
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之间的调用的更多相关文章
- Java特性之多态父类与子类之间的调用
问题描述: Java三大特性,封装.继承.多态,一直没搞懂其中多态是什么,最近研究了一下,关于父类和子类之间的调用.下面是一个测试类,源代码如下: package com.test; public c ...
- html iframe 元素之间的调用
html iframe 元素之间的调用一.简介 一般需要引入一个独立页面的时候,我们会使用iframe.在业务需要的时候,我们需要在父页面与iframe页面之间进行交互.交互的时候,我们就需要使 用到 ...
- 两个APP之间怎么调用《IT蓝豹》
两个app之间怎么调用? (1):通过显示Intent 启动 首先:配置好B app 的action,即AndroidManifest.xml中声明 <intent-filter> ...
- 《同一个类中不同方法之间的调用相关问题(省略的类名或者this)》
//同一个类中不同方法之间的调用相关问题(省略的类名或者this) class A { public void B() { System.out.println("b方法运行"); ...
- JAVA 构造方法之间的调用
this:看上去,用来区分局部变量和成员变量的情况this:就是代表本类对象,this代表它所在方法所属对象的引用构造方法之间的调用只能通过this语句来完成构造方法之间进行调用时this语句只能出现 ...
- Iframe父页面与子页面之间的调用
原文:Iframe父页面与子页面之间的调用 Iframe父页面与子页面之间的调用 专业词语解释如下: Iframe:iframe元素是文档中的文档. window对象: 浏览器会在其打 ...
- 使用DLL进行不同语言之间的调用(转)
源:使用DLL进行不同语言之间的调用 __declspec(dllexport) 是告诉编译器用来导出函数的,在代码中不另作说明了. extern "C" 的意思就是用C的方式来导 ...
- dedecms自定义模型之独立模型在首页、列表页、内容调用内容
dedecms关于自定义模型(独立模型)的首页.列表页.内容怎么调用?在后台自定义模型(独立模型)的建立及自定义字段的添加比较简单,需要注意两点: (1)如果某个字段需要在前台列表页显示,则在前台参数 ...
- synchronized修饰的方法之间相互调用
1:synchronized修饰的方法之间相互调用,执行结果为There hello ..因为两个方法(main,hello)的synchronized形成了互斥锁. 所以当main方法执行完之后 ...
随机推荐
- IOS 点击空白处隐藏键盘的几种方法
IOS 点击空白处隐藏键盘的几种方法 IOS7 点击空白处隐藏键盘的几种方法 IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能 ...
- 关于Java(标识符规则)
Java 是大小写敏感的语言. Java 标识符组成 Java 标识符组成: 字母,数字,下划线和美元符 $ Java 标识符规则 仅包含 字母,数字,下划线和美元符 开头不能使数字 不能使 Java ...
- 概率质量函数:怀孕周期的PMF
__author__ = 'dell' import surveyimport Pmfimport matplotlib.pyplot as pyplot table = survey.Pregnan ...
- A Statistical View of Deep Learning (II): Auto-encoders and Free Energy
A Statistical View of Deep Learning (II): Auto-encoders and Free Energy With the success of discrimi ...
- java打jar包 命令行cmd在当前路径打jar包
不尝试就永远不会知道真相. 今天搞webservice,需要将服务单独拉出来发布.打jar包的时候要打成aar包,所以用到cmd下的打jar包的命令. 当前路径打jar包,一定要先进到这个文件夹,然后 ...
- Oracle开始从Java运行时中移除JAR包
早在2012年8月,在Java平台首席架构师Mark Reinhold宣布模块化项目Jigsaw之后不久,JEP 162这一题为“准备模块化”的提案就指出,在Jigsaw项目中为模块化系统开发的代码不 ...
- codeforces C. Sereja and Swaps
http://codeforces.com/contest/426/problem/C 题意:找出连续序列的和的最大值,可以允许交换k次任意位置的两个数. 思路:枚举区间,依次把区间内的比较小的数换成 ...
- Blue Jeans
Description The Genographic Project is a research partnership between IBM and The National Geographi ...
- OTP语音芯片和掩模语音芯片(mask)的区别
OTP(One Time Programable)是MCU的一种存储器类型,意思是一次性可编程:程序烧入IC后,将不可再次更改和:因此OTP语音芯片就是指一次性烧录的语音IC. 从OTP定义上来看,只 ...
- 马云专访二:点评阿里雅虎交易、BAT三家、互联网巨头与政府关系
记者:我们不得不要说到你和雅虎之间的事情了.你知道,雅虎对整个互联网业的意义不只是一家公司,它有它象征的意义,重要的是,雅虎对阿里巴巴的意义更加非同寻常,当你最后决定用76亿美元从雅虎“赎身”的时候, ...