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实现MVC开发得最简单的方法――模型
Apr 10 PHP
mysql 字段类型说明
Apr 27 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
Feb 04 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
php比较两个绝对时间的大小
Jan 31 PHP
php递归调用删除数组空值元素的方法
Apr 28 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
php正则表达式使用方法整理集合
Jan 31 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实现Session入库/存入redis的方法
2017/05/04 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
2011/04/06 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
深入理解Python 代码优化详解
2014/10/27 Python
TensorFlow变量管理详解
2018/03/10 Python
使用python存储网页上的图片实例
2018/05/22 Python
Python之pymysql的使用小结
2019/07/01 Python
pygame实现成语填空游戏
2019/10/29 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
Python 多进程、多线程效率对比
2020/11/19 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
介绍下Java的输入输出流
2014/01/22 面试题
汇智创新科技发展有限公司
2015/12/06 面试题
人事助理岗位职责
2013/11/18 职场文书
学校宣传标语
2014/06/18 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript
Android实现图片九宫格
2022/06/28 Java/Android