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 传值赋值与引用赋值的区别
Dec 29 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
PHP中的Streams详细介绍
Nov 12 PHP
php实现简单的上传进度条
Nov 17 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
php中static和const关键字用法分析
Dec 07 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
php如何比较两个浮点数是否相等详解
Feb 12 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 PHP
php去除数组中为0的元素的实例分析
Nov 17 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
ie6 动态缩略图不显示的原因
2009/06/21 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
javascript中&quot;/&quot;运算符常见错误
2010/10/13 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
理解Python中的With语句
2016/03/18 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
Python作用域与名字空间原理详解
2020/03/21 Python
python实现吃苹果小游戏
2020/03/21 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
《在家里》教后反思
2014/03/01 职场文书
学校志愿者活动总结
2014/06/27 职场文书
工厂标语大全
2014/10/06 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers