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 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
php ignore_user_abort与register_shutdown_function 使用方法
Jun 14 PHP
PHP 调试工具Debug Tools
Apr 30 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
php查看当前Session的ID实例
Mar 16 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
php实现在站点里面添加邮件发送的功能
Apr 28 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 PHP
PHP执行普通shell命令流程解析
Aug 24 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
php将时间差转换为字符串提示
2011/09/07 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
深入解析php之sphinx
2013/05/15 PHP
php stripslashes和addslashes的区别
2014/02/03 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
一些Python中的二维数组的操作方法
2015/05/02 Python
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python实现宿舍管理系统
2019/11/22 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
2014年乡镇工会工作总结
2014/12/02 职场文书
督导岗位职责
2015/02/04 职场文书
博士生专家推荐信
2015/03/25 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
2015年计划生育责任书
2015/05/08 职场文书
乔迁新居祝福语
2019/11/04 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
Elasticsearch 索引操作和增删改查
2022/04/19 Python
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server