落实的数据库增加和删除改查操作总括,CodeIgniter框架基本增加和删除改查操作示例

by admin on 2019年6月27日

正文实例陈说了CI框架(CodeIgniter)完毕的数据库增加和删除改查操作。分享给我们供我们参谋,具体如下:

本文实例呈报了CI框架ALAND数据库操作常用函数。分享给大家供我们参谋,具体如下:

正文实例陈诉了CodeIgniter框架基本增加和删除改查操作。分享给我们供大家参谋,具体如下:

本文实例呈报了CI框架数据库查询缓存优化的主意。分享给大家供大家参谋,具体如下:

controllers下的 cquery.php文件

1、查询表记录

落实的数据库增加和删除改查操作总括,CodeIgniter框架基本增加和删除改查操作示例。对于codeigniter的增加和删除改,在此笔者用自身的八个事例来验证一下:

CI框架中有个比较好的询问优化,就是数据库缓存优化

<?php
class CQuery extends Controller {
  //构造函数
  function CQuery() {
    parent::Controller();
//   $this->load->database();
  }
  function index() {
    //调用model 其中train为外层文件夹  MQuery为model名称 queryList为重命名
    $this->load->model('train/MQuery','queryList');
    //获得返回的结果集  这里确定调用model中的哪个方法
    $result = $this->queryList->queryList();
    //将结果集赋给res
    $this->smarty->assign('res',$result);
    //跳转到显示页面
    $this->smarty->view('train/vquery.tpl');
  }
  //进入新增页面
  function addPage() {
    $this->smarty->view('train/addPage.tpl');
  }
  //新增
  function add() {
    //获得前台数据
    //用户名
    $memberName = $this->input->post('memberName');
    //密码
    $password = $this->input->post('password');
    //真实姓名
    $userRealName = $this->input->post('userRealName');
    //性别
    $sex = $this->input->post('sex');
    //出生日期
    $bornDay = $this->input->post('bornDay');
    //e_mail
    $eMail = $this->input->post('eMail');
    //密码问题
    $question = $this->input->post('question');
    //密码答案
    $answer = $this->input->post('answer');
    //调用model
    $this->load->model('train/MQuery','addRecord');
    //向model中的addRecord传值
    $result = $this->addRecord->addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);
    //判断返回的结果,如果返回true,则调用本页的index方法,不要写 $result == false 因为返回的值未必是false 也有可能是""
    if ($result) {
      $this->index();
    } else {
      echo "add failed.";
    }
  }
  //删除
  function deletePage() {
    //获得ID
    $deleteID = $this->uri->segment(4);
    //调用model
    $this->load->model('train/MQuery','delRecord');
    //将值传入到model的delRecord方法中
    $result = $this->delRecord->delRecord($deleteID);
    //判断返回值
    if ($result) {
      $this->index();
    } else {
      echo "delect failed.";
    }
  }
  //修改先查询
  function changePage() {
    $changeID = $this->uri->segment(4);
    $this->load->model('train/MQuery','changeRecord');
    $result = $this->changeRecord->changeRecord($changeID);
    //将结果集赋给res
    $this->smarty->assign('res',$result);
    //跳转到显示页面
    $this->smarty->view('train/changePage.tpl');
  }
  //修改
  function change() {
    //获得前台数据
    //ID
    $ID = $this->input->post('id');
    //用户名
    $memberName = $this->input->post('memberName');
    //密码
    $password = $this->input->post('password');
    //真实姓名
    $userRealName = $this->input->post('userRealName');
    //性别
    $sex = $this->input->post('sex');
    //出生日期
    $bornDay = $this->input->post('bornDay');
    //e_mail
    $eMail = $this->input->post('eMail');
    //密码问题
    $question = $this->input->post('question');
    //密码答案
    $answer = $this->input->post('answer');
    //调用model
    $this->load->model('train/MQuery','change');
    //向model中的change传值
    $result = $this->change->change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);
    //判断返回的结果,如果返回true,则调用本页的index方法,不要写 $result == false 因为返回的值未必是false 也有可能是""
    if ($result) {
      $this->index();
    } else {
      echo "change failed.";
    }
  }
}
$this->db->select();  //选择查询的字段
$this->db->select_max();
$this->db->select_min();
$this->db->select_avg();
$this->db->select_sum();
$this->db->from();   //选择表名
$this->db->join();
$this->db->get();   //得到查询结果
$this->db->get_where();
$this->db->where();
$this->db->or_where();
$this->db->where_in();
$this->db->or_where_in();
$this->db->where_not_in();
$this->db->or_where_not_in();
$this->db->like();
$this->db->or_like();
$this->db->not_like();
$this->db->or_not_like();
$this->db->group_by();
$this->db->distinct();
$this->db->having();
$this->db->or_having();
$this->db->order_by();
$this->db->limit();
$this->db->count_all_results();

开创数据库:

落实的数据库增加和删除改查操作总括,CodeIgniter框架基本增加和删除改查操作示例。1.敞开缓存

models中的 mquery.php 文件

2、扩大表记录

CREATE TABLE IF NOT EXISTS `users` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `username` varchar(50) NOT NULL,
 `password` varchar(50) NOT NULL,
 `email` varchar(100) NOT NULL,
 `fullname` varchar(100) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `username` (`username`),
 UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
//在application/config.php中开启
$db['default']['cache_on'] = TRUE;
//在application/config.php中开启
$db['default']['cachedir'] = './cache';
//并在对应的目录中加一个可写缓存目录cache
<?php
class MQuery extends Model {
  //构造函数
  function MQuery() {
    parent::Model();
    //连接数据库
    $this->load->database();
  }
  //查询列表
  function queryList() {
    //防止select出的数据存在乱码问题
    //mysql_query("SET NAMES GBK");
    //SQL语句
    $sql = "SELECT ID,member_name,sex,e_mail FROM user_info_t";
    //执行SQL
    $rs = $this->db->query($sql);
    //将查询结果放入到结果集中
    $result = $rs->result();
    //关闭数据库
    $this->db->close();
    //将结果集返回
    return $result;
  }
  //新增
  function addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {
    //防止select出的数据存在乱码问题
    //mysql_query("SET NAMES GBK");
    //SQL语句
    $sql = "INSERT INTO user_info_t (member_name,password,user_real_name,sex,born_day,e_mail,question,answer) " .
        "VALUES ('$memberName','$password','$userRealName','$sex','$bornDay','$eMail','$question','$answer')";
    //执行SQL
    $result = $this->db->query($sql);
    //关闭数据库
    $this->db->close();
    //返回值
    return $result;
  }
  //删除
  function delRecord($deleteID) {
    //防止select出的数据存在乱码问题
    //mysql_query("SET NAMES GBK");
    $sql = "DELETE FROM user_info_t WHERE ID = $deleteID";
    $result = $this->db->query($sql);
    $this->db->close();
    return $result;
  }
  //修改前查询
  function changeRecord($changeID) {
    //防止select出的数据存在乱码问题
    //mysql_query("SET NAMES GBK");
    $sql = "SELECT ID,member_name,password,user_real_name,sex,born_day,e_mail,question,answer FROM user_info_t WHERE ID = $changeID";
    //执行SQL
    $rs = $this->db->query($sql);
    $result = $rs->row();//$result = $rs[0]
    //关闭数据库
    $this->db->close();
    //将结果集返回
    return $result;
  }
  //修改
  function change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {
    //防止select出的数据存在乱码问题
    //mysql_query("SET NAMES GBK");
    //SQL语句
    $sql = "update user_info_t set member_name = '$memberName',password = '$password', user_real_name = '$userRealName'," .
        "sex = '$sex',born_day = '$bornDay',e_mail = '$eMail',question = '$question',answer = '$answer'" .
        "where ID = $ID";
    //执行SQL
    $result = $this->db->query($sql);
    //关闭数据库
    $this->db->close();
    //返回值
    return $result;
  }
}
$this->db->insert();

Model

2. 在相应的询问中开启缓存语句

views 下的 addPage.tpl文件

3、改动表记录

MTest.php

// 打开缓存开关
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM mytable");
// 使下面这条查询不被缓存
$this->db->cache_off();
$query = $this->db->query("SELECT * FROM members WHERE member_id = '$current_user'");
// Turn caching back on
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM another_table");
<html>
  <head>
  </head>
  <body><form action="{{site_url url='train/cquery/add'}}" method="post">
    <table border='1'>
      <tr>
        <td>用户名</td>
        <td><input type="text" class="text" name="memberName" id="memberName"/></td>
      </tr>
      <tr>
        <td>密码</td>
        <td><input type="text" class="text" name="password" id="password"/></td>
      </tr>
      <tr>
        <td>真实姓名</td>
        <td><input type="text" class="text" name="userRealName" id="userRealName"/></td>
      </tr>
      <tr>
        <td>性别</td>
        <td><input type="text" class="text" name="sex" id="sex"/></td>
      </tr>
      <tr>
        <td>出生日期</td>
        <td><input type="text" class="text" name="bornDay" id="bornDay"/></td>
      </tr>
      <tr>
        <td>e_mail</td>
        <td><input type="text" class="text" name="eMail" id="eMail"/></td>
      </tr>
      <tr>
        <td>密码问题</td>
        <td><input type="text" class="text" name="question" id="question"/></td>
      </tr>
      <tr>
        <td>密码答案</td>
        <td><input type="text" class="text" name="answer" id="answer"/></td>
      </tr>
    </table>
    <table>
      <tr>
        <td><input type="submit" class="button" name="OK" value="提交" />
        </td>
      </tr>
    </table></form>
  </body>
</html>
$this->db->set();
$this->db->update();
<?php
  class MTest extends CI_Model{
    public function __construct(){
      parent::__construct();
      $this->load->database();
    }
    //insert into data
    public function insert_users($arr){
      $this->db->insert('users',$arr);
    }
    //delete data
    public function delete_users($id){
      $this->db->where('id',$id);
      $this->db->delete('users');
    }
    //Alter data
    public function update_users($username,$arr){
      $this->db->where('username',$username);
      $this->db->update('users',$arr);
    }
    //select data
    public function select_users($id){
      $this->db->where('id',$id);
      $this->db->select('*');
      return $this->db->get('users');
      //注意如果你返回的是以下内容的话,他就是一个对象的结果集,这样当你返回controller中时,你就得转换;
//     return $query->result();
    }
  }
?>

3. 增进相应的 清空缓存

changePage.tpl 文件

4、删除表记录

Controller

//缓存不会自动删除 只能手动删除
//这样 你可以在对应的 增改删 语句中清除缓存 就ok了
//清空所有缓存
$this->db->cache_delete_all()
/*
清空单个缓存
example.com/index.php/blog/comments的页面, 缓存系统会把所有生成的缓存文件放进
一个以 blog+comments做为名称的文件夹里. 如果您要删除关于刚才提到的这个例子与
之对应的缓存文件 需要执行以下代码:
*/
$this->db->cache_delete('/blog', 'comments');
<html>
  <head>
  </head>
  <body><form action="{{site_url url='train/cquery/change'}}" method="post">
    <table border='1'><input type="hidden" name="id" value="{{$res->ID}}" />
      <tr>
        <td>用户名</td>
        <td><input type="text" class="text" name="memberName" id="memberName" value="{{$res->member_name}}" /></td>
      </tr>
      <tr>
        <td>密码</td>
        <td><input type="text" class="text" name="password" id="password" value="{{$res->password}}" /></td>
      </tr>
      <tr>
        <td>真实姓名</td>
        <td><input type="text" class="text" name="userRealName" id="userRealName" value="{{$res->user_real_name}}"/></td>
      </tr>
      <tr>
        <td>性别</td>
        <td><input type="text" class="text" name="sex" id="sex" value="{{$res->sex}}"/></td>
      </tr>
      <tr>
        <td>出生日期</td>
        <td><input type="text" class="text" name="bornDay" id="bornDay" value="{{$res->born_day}}"/></td>
      </tr>
      <tr>
        <td>e_mail</td>
        <td><input type="text" class="text" name="eMail" id="eMail" value="{{$res->e_mail}}"/></td>
      </tr>
      <tr>
        <td>密码问题</td>
        <td><input type="text" class="text" name="question" id="question" value="{{$res->question}}"/></td>
      </tr>
      <tr>
        <td>密码答案</td>
        <td><input type="text" class="text" name="answer" id="answer" value="{{$res->answer}}"/></td>
      </tr>
    </table>
    <table>
      <tr>
        <td><input type="submit" class="button" name="OK" value="提交" />
        </td>
      </tr>
    </table></form>
  </body>
</html>
$this->db->delete();

home.php

越来越多关于CodeIgniter相关内容感兴趣的读者可查阅本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架晋级教程》、《php非凡开荒框架总括》、《ThinkPHP入门教程》、《bf88必发唯一官网,ThinkPHP常用艺术总括》、《Zend
FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技艺汇总》

vquery.tpl 文件

5、清空表记录

<?php
/**
 * xxx.php
 * ==============================================
 * Copy right 2012-2015
 * ----------------------------------------------
 * This is not a free software, without any authorization is not allowed to use and spread.
 * ==============================================
 * @Author:YeXianMing
 * @Email:LangWaiShiGe@hotmail.com
 * @Version:zend studio10.6.2 php5.4.38 apache2.2
 */
  if(!defined('BASEPATH'))exit('No direct script access allowed');
  class Home extends CI_Controller{
    public function __construct(){
      parent::__construct();
    }
    //insert data
    public function insert(){
      $this->load->model('MTest','',TRUE);
      $arr=array('username'=>'yexianming1','password'=>'admin','email'=>'11504160314qq.com','fullname'=>'luotianyexianming');
      if(!($this->MTest->insert_users($arr))){
        echo "插入数据成功";
      }else{
        echo "插入数据失败";
      }
    }
    //update data
    public function update(){
      $this->load->model('MTest','',TRUE);
      $arr=array('username'=>'Helloworld22','password'=>'root','email'=>'895787704@qq.com','fullname'=>'luotianyecong');
      if(!($this->MTest->update_users('Helloworld',$arr))){
        echo "修改成功";
      }else{
        echo "修改失败";
      }
    }
    //delete data
    public function delete(){
      $this->load->model('MTest','',TRUE);
      $query=$this->MTest->delete_users(12);
      if(!$query){
        echo "删除成功";
      }else{
        echo "删除失败";
      }
    }
    //select data
    public function select(){
      $this->load->library('table');
      $this->load->model('MTest','',TRUE);
      $arr=$this->MTest->select_users(3);
      $userinformation=$this->table->generate($arr);
      $data['userinfor']=$userinformation;
      $this->load->view('template',$data);
    }
  }
?>

瞩望本文所述对大家基于CodeIgniter框架的PHP程序设计具备协助。

<html>
  <head>
    <title></title>
  </head>
  <body>
    <table border='1'>
      <tr>
        <td>用户名</td>
        <td>性别</td>
        <td>e_mail</td>
        <td>操作</td>
      </tr>
      {{foreach from=$res item=row}}
      <tr>
        <input type="hidden" value={{$row->ID}}>
        <td>{{$row->member_name}}</td>
        <td>{{$row->sex}}</td>
        <td>{{$row->e_mail}}</td>
        <td><a href="{{site_url url='train/cquery/deletePage'}}/{{$row->ID}}" rel="external nofollow" >删除</a><a href="{{site_url url='train/cquery/changePage'}}/{{$row->ID}}" rel="external nofollow" >修改</a></td>
      </tr>
      {{/foreach}}
    </table>
    <a href="{{site_url url='train/cquery/addPage'}}" rel="external nofollow" rel="external nofollow" mce_href="{{site_url url='train/cquery/addPage'}}" rel="external nofollow" rel="external nofollow" >add</a>
  </body>
</html>
$this->db->empty_table();
$this->db->truncate();

view

你恐怕感兴趣的文章:

  • codeigniter自带数据库类使用情势求证
  • 天涯论坛SAE云平台下选取codeigniter的数据库配置
  • codeigniter数据库操作函数汇总
  • Codeigniter操作数据库表的优化写法总括
  • CodeIgniter针对数据库的连天、配置及利用方法
  • CI框架入门示例之数据库取多少完全兑现方式
  • CI框架中数据库操作函数$this->db->where()相关用法计算
  • CI框架A奥迪Q3数据库操作常用函数总计
  • CI框架出现mysql数据库连接资源无法自由的化解格局
  • CI框架数据库查询之join用法深入分析
  • CI框架(CodeIgniter)达成的数据库增加和删除改查操作总括

更加的多关于CodeIgniter相关内容感兴趣的读者可查看本站专项论题:《codeigniter入门教程》、《CI(CodeIgniter)框架进级教程》、《php卓绝开采框架计算》、《ThinkPHP入门教程》、《ThinkPHP常用艺术总计》、《Zend
FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作本领汇总》

6、缓存部分

temlate.php

意在本文所述对大家基于CodeIgniter框架的PHP程序设计具备帮衬。

$this->db->start_cache()
$this->db->stop_cache()
$this->db->flush_cache()
<?php echo $userinfor;?>

您大概感兴趣的小说:

  • codeigniter自带数据库类使用情势求证
  • 让CodeIgniter数据库缓存自动过期的管理的艺术
  • 微博SAE云平台下接纳codeigniter的数据库配置
  • codeigniter数据库操作函数汇总
  • Codeigniter操作数据库表的优化写法总计
  • CodeIgniter针对数据库的总是、配置及应用情势
  • CodeIgniter框架数据库事务管理的规划缺陷和消除方案
  • CodeIgniter框架数据库基本操作示例
  • CI(CodeIgniter)框架配置
  • CodeIgniter基本配置详细介绍
  • php框架CodeIgniter主从数据库配置格局剖析

7、结果结果集

output:

result()  //返回对象数组
result_array() //返回二维数组
row()   //返回一个对象
row_array()  //返回一维数组
num_rows()  //返回查询的行数
num_fields() //返回查询结果的字段数
free_result() //释放查询所占的资源内存
id username password email fullname
3 Helloworld22 root 1111111@qq.com luotianyecong

8、辅协助调查询函数

越来越多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进级教程》、《php优良开辟框架总括》、《ThinkPHP入门教程》、《ThinkPHP常用艺术总括》、《Zend
FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作才干汇总》

$this->db->insert_id()  //获取刚刚插入的id
$this->db->affected_rows() //修改或插入影响的行数
$this->db->count_all();  //统计记录的总条数 这一函数加入where条件无效
$this->db->last_query();  //最后一条执行的sql语句
//注意以下两个函数仅返回sql语句 不执行sql语句
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$str = $this->db->insert_string('table_name', $data);
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$where = "author_id = 1 AND status = 'active'";
$str = $this->db->update_string('table_name', $data, $where); //返回正确格式的更新字符串

企望本文所述对大家基于CodeIgniter框架的PHP程序设计有所支持。

PS:关于CodeIgniter详细使用才能可参照本站在线手册:

您大概感兴趣的文章:

  • CI(CodeIgniter)框架中的增加和删除改查操作
  • CodeIgniter删除和设置Cookie的方式
  • CI框架数据库查询缓存优化的办法
  • CI框架数据库查询之join用法深入分析
  • CI框架AENVISION数据库操作常用函数总括
  • CI框架出现mysql数据库连接财富不可能自由的化解方法
  • CI框架中数据库操作函数$this->db->where()相关用法计算
  • CI配置多数据库访问的主意
  • CI框架入门示例之数据库取多少完全兑现格局
  • php中CI操作四个数据库的代码
  • 天涯论坛SAE云平台下利用codeigniter的数据库配置
  • codeigniter数据库操作函数汇总
  • codeigniter自带数据库类使用方法求证

CodeIgniter 2.2.4用户指南:

CodeIgniter 3.0用户指南:

越多关于CodeIgniter相关内容感兴趣的读者可查看本站专项论题:《codeigniter入门教程》、《CI(CodeIgniter)框架升级教程》、《php优良开垦框架总括》、《ThinkPHP入门教程》、《ThinkPHP常用艺术计算》、《Zend
FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作本领汇总》

盼望本文所述对我们基于CodeIgniter框架的PHP程序设计具备援助。

您或许感兴趣的小说:

  • CodeIgniter框架数据库事务管理的统一筹算缺陷和减轻方案
  • codeigniter自带数据库类使用办法求证
  • 让CodeIgniter数据库缓存自动过期的管理的不二诀窍
  • 天涯论坛SAE云平台下利用codeigniter的数据库配置
  • codeigniter数据库操作函数汇总
  • Codeigniter操作数据库表的优化写法总结
  • CodeIgniter针对数据库的连天、配置及运用办法
  • CI框架(CodeIgniter)完结的数据库增加和删除改查操作总括
  • CI框架入门示例之数据库取多少全体兑现格局
  • CodeIgniter框架数据库基本操作示例

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图