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 采集心得技巧
May 15 PHP
PHP XML数据解析代码
May 26 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
php 的反射详解及示例代码
Aug 25 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
redis+php实现微博(三)微博列表功能详解
Sep 23 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 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
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
万能的php分页类
2017/07/06 PHP
PHP 图片处理
2020/09/16 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
Python中的进程分支fork和exec详解
2015/04/11 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
树莓派安装OpenCV3完整过程的实现
2019/10/10 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
Linux操作面试题
2012/05/16 面试题
农村婚礼证婚词
2014/01/10 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
写给女朋友的保证书
2015/05/09 职场文书
实验室安全管理制度
2015/08/05 职场文书
2016国庆促销广告语
2016/01/28 职场文书
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js