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 15 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
php 计划任务 检测用户连接状态
Mar 29 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
Apr 27 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
python web框架 django wsgi原理解析
2019/08/20 Python
python实现静态服务器
2019/09/05 Python
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
销售自我评价
2013/10/22 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
护士找工作求职信
2014/07/02 职场文书
荒岛余生观后感
2015/06/09 职场文书
盲山观后感
2015/06/11 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript