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之第二天
Oct 09 PHP
PHP初学入门
Nov 19 PHP
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
PHP设计模式之结构模式的深入解析
Jun 13 PHP
解析php中curl_multi的应用
Jul 17 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
ThinkPHP连接数据库的方式汇总
Dec 05 PHP
php 数组处理函数extract详解及实例代码
Nov 23 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP接入微信H5支付的方法示例
Oct 28 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
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
smarty中post用法实例
2014/11/28 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
在视频前插入广告
2006/11/20 Javascript
js模拟弹出效果代码修正版
2008/08/07 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python 类的特殊成员解析
2018/06/20 Python
详解python中的装饰器
2018/07/10 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
大学生毕业自我鉴定范文
2013/11/03 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
代领报检证委托书范本
2014/10/11 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2015年公司工作总结
2015/04/25 职场文书
angular异步验证器防抖实例详解
2022/03/31 Javascript