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写的采集程序
Mar 16 PHP
php+mysql开源XNA 聚合程序发布 下载
Jul 13 PHP
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
php实现utf-8和GB2312编码相互转换函数代码
Feb 07 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
php中explode函数用法分析
Nov 15 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
Yii框架分页技术实例分析
Aug 30 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
详解Python中的文件操作
2016/08/28 Python
深入理解python中的select模块
2017/04/23 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
python默认参数调用方法解析
2020/02/09 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
会计电算化应届生自荐信
2014/02/25 职场文书
信息技术课后反思
2014/04/27 职场文书
文艺晚会策划方案
2014/06/11 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
Python之matplotlib绘制饼图
2022/04/13 Python