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 相关文章推荐
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
Jan 29 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
PHP实现的MongoDB数据库操作类分享
May 12 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
php设计模式之委托模式
Feb 13 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
PHP写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
基于python实现模拟数据结构模型
2020/06/12 Python
python 装饰器的使用示例
2020/10/10 Python
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
动物科学专业毕业生的自我评价
2013/11/29 职场文书
服装设计专业求职信
2014/06/16 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
班子四风对照检查材料
2014/08/21 职场文书