PHP实现基于mysqli的Model基类完整实例


Posted in PHP onApril 08, 2016

本文实例讲述了PHP实现基于mysqli的Model基类。分享给大家供大家参考,具体如下:

DB.class.php

<?php
  //数据库连接类
  class DB {
     //获取对象句柄
     static public function getDB() {
       $_mysqli = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
       if (mysqli_connect_errno()) {
          echo '数据库连接错误!错误代码:'.mysqli_connect_error();
          exit();
       }
       $_mysqli->set_charset('utf8');
       return $_mysqli;
     }
     //清理,释放资源
     static public function unDB(&$_result, &$_db) {
       if (is_object($_result)) {
          $_result->free();
          $_result = null;
       }
       if (is_object($_db)) {
          $_db->close();
          $_db = null;
       }
     }
  }
?>

Model.class.php

<?php
  //模型基类
  class Model {
     //执行多条SQL语句
     public function multi($_sql) {
       $_db = DB::getDB();
       $_db->multi_query($_sql);
       DB::unDB($_result = null, $_db);
       return true;
     }
     //获取下一个增值id模型
     public function nextid($_table) {
       $_sql = "SHOW TABLE STATUS LIKE '$_table'";
       $_object = $this->one($_sql);
       return $_object->Auto_increment;
     }
     //查找总记录模型
     protected function total($_sql) {
       $_db = DB::getDB();
       $_result = $_db->query($_sql);
       $_total = $_result->fetch_row();
       DB::unDB($_result, $_db);
       return $_total[0];
     }
     //查找单个数据模型
     protected function one($_sql) {
       $_db = DB::getDB();
       $_result = $_db->query($_sql);
       $_objects = $_result->fetch_object();
       DB::unDB($_result, $_db);
       return Tool::htmlString($_objects);
     }
     //查找多个数据模型
    protected function all($_sql) {
       $_db = DB::getDB();
       $_result = $_db->query($_sql);
       $_html = array();
       while (!!$_objects = $_result->fetch_object()) {
          $_html[] = $_objects;
       }
       DB::unDB($_result, $_db);
       return Tool::htmlString($_html);
     }
     //增删修模型
     protected function aud($_sql) {
       $_db = DB::getDB();
       $_db->query($_sql);
       $_affected_rows = $_db->affected_rows;
       DB::unDB($_result = null, $_db);
       return $_affected_rows;
     }
  }
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php学习笔记 [预定义数组(超全局数组)]
Jun 09 PHP
php基础学习之变量的使用
Jun 09 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
Feb 27 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
php生成带logo二维码方法小结
Apr 08 #PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 #PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 #PHP
初识ThinkPHP控制器
Apr 07 #PHP
PHP中PDO的事务处理分析
Apr 07 #PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 #PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 #PHP
You might like
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
python打包成so文件过程解析
2019/09/28 Python
python 装饰器的使用示例
2020/10/10 Python
介绍一下SQL中union,intersect和minus
2012/04/05 面试题
南京某公司笔试题
2013/01/27 面试题
小学生家长评语集锦
2014/01/30 职场文书
安卓程序员求职信
2014/02/28 职场文书
企业元宵节主持词
2014/03/25 职场文书
信用卡工作证明模板
2014/09/14 职场文书
小学科学教学计划
2015/01/21 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
gojs实现蚂蚁线动画效果
2022/02/18 Javascript
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA
教你如何用cmd快速登录服务器
2022/06/10 Servers