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 相关文章推荐
数字转英文
Dec 06 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 PHP
Yii2 rbac权限控制操作步骤实例教程
Apr 29 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
详解PHP5.6.30与Apache2.4.x配置
Jun 02 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
详解PHP队列的实现
Mar 14 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 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
php 文本文件的读取效率
2012/02/10 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
input的focus方法使用
2010/03/13 Javascript
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
js 处理URL实用技巧
2010/11/23 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
编辑个人求职信范文
2013/09/21 职场文书
入党申请自荐书范文
2014/02/11 职场文书
三八节主持词
2014/03/17 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
学校宣传标语
2014/06/18 职场文书
清明节寄语2015
2015/03/23 职场文书
入党介绍人意见2015
2015/06/01 职场文书
小学数学教学随笔
2015/08/14 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
Django中session进行权限管理的使用
2021/07/09 Python
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android