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方法执行完之后 ...
随机推荐
- 利用Java反射机制完成XML到对象的解析
对于一些小批量的数据,如果采用数据库来存取的话,未免有点大题小作,使用XML文件是个不错的方法,尤其是在一些Web应用中,经常需要缓存一部分数据,如果将这些数据形成XML文件,解析后放入一个Hasht ...
- COJ 2110 Day7-例3
Day7-例3 难度级别:C: 运行时间限制:5000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 输入 输入的第一行包含整数n和k,其中n(2 ≤ n ≤100 ...
- 有关linux下redis overcommit_memory的问题(转)
一.背景 公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的: [13223] 17 Mar 13:18:02.207 # WARNING ov ...
- Fire Net HDU 1045
简单深搜,可以完全暴力,不会超时的. #include<iostream> #include<cstring> #include<cmath> using name ...
- 【单调栈】Vijos P1926 紫色的手链
题目链接: https://vijos.org/p/1926 题目大意: 给n个数(n<=100 000),求任意区间的最大值异或次大值的最大值. 题目思路: [模拟][单调栈] 我们维护一个严 ...
- 福州大学 Problem 2168 防守阵地 I
http://acm.fzu.edu.cn/problem.php?pid=2168 最重要的是 dp[k]=dp[k-1]-ans[k-1]+x[i]*m; ans[k-1]是m个数求和. Pro ...
- Vim笔记
复制多行: v 可视化,选择多行,然后yy复制.
- HDOJ(HDU) 2139 Calculate the formula(水题,又一个用JavaAC不了的题目)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 看到这个时间,我懵逼了... 果然,J ...
- Parameterized tests
Parameterized继承自Suite.Parameterized是在参数上实现了Suite,修饰一个测试类,然后提供多组构造函数的参数用于测试不同场景. import java.util.Arr ...
- Linux 下让进程在后台可靠运行的几种方法
想让进程在断开连接后依然保持运行?如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作? 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一 ...