0

0

详解PHP封装的一个单例模式Mysql操作类

jacklove

jacklove

发布时间:2018-06-08 14:50:16

|

1988人浏览过

|

来源于php中文网

原创

php封装的一个单例模式mysql操作类在php中有着重要的作用,本文将详细的讲解其相关知识。

PHP封装的一个单例模式Mysql操作类

掌握满足单例模式的必要条件----三私一公。

①私有的构造方法-为了防止在类外使用new关键字实例化对象。

②私有的成员属性-为了防止在类外引入这个存放对象的属性。

立即学习PHP免费学习笔记(深入)”;

③私有的克隆方法-为了防止在类外通过clone成生另一个对象。

④公有的静态方法-为了让用户进行实例化对象的操作。

DM建站系统汽车保养维修HTML5网站模板1.5
DM建站系统汽车保养维修HTML5网站模板1.5

DM建站系统汽车保养维修HTML5网站模板,DM企业建站系统。是由php+mysql开发的一套专门用于中小企业网站建设的开源cms。DM系统的理念就是组装,把模板和区块组装起来,产生不同的网站效果。可以用来快速建设一个响应式的企业网站( PC,手机,微信都可以访问)。后台操作简单,维护方便。DM企业建站系统安装步骤:第一步,先用phpmyadmin导入sql文件。 第二步:把文件放到你的本地服务器

下载

DB类及相关表操作;

class mysql_db{ 
  //1.私有的静态属性
  private static $dbcon = false; 
  //2.私有的构造方法
  private function __construct(){
    $dbconn = @mysql_connect("localhost","root","");
    mysql_select_db("test",$dbconn) or die("mysql_connect error");
    mysql_query("SET NAMES utf8");
  } 
  //3.私有的克隆方法
  private function __clone() {
   
  } 
  //1.公有的静态方法
  public static function getIntance() {
    if(self::$dbcon==false){   
      self::$dbcon=new self;
    }
    return self::$dbcon;
  }
  //执行语句
  public function query($sql) {
    $query=mysql_query($sql);   
    return $query;
  }
  /**
  * 查询某个字段
  * @param
  * @return string or int
  */
  public function getOne($sql) {
    $query = $this->query($sql);  
    return mysql_result($query,0);
  } 
  //获取一行记录,return array 一维数组
  public function getRow($sql,$type="assoc") {
      $query=$this->query($sql);   
      if(!in_array($type,array("assoc",'array',"row"))) {
         die("mysql_query error");
       }
      $funcname = "mysql_fetch_".$type;  
      return $funcname($query);
  } 
  //获取一条记录,前置条件通过资源获取一条记录
  public function getFormSource($query,$type="assoc"){   
     if(!in_array($type,array("assoc","array","row"))) {
        die("mysql_query error");
     }
     $funcname = "mysql_fetch_".$type;   
     return $funcname($query);
  }  //获取多条数据,二维数组
  public function getAll($sql){
      $query=$this->query($sql);
      $list=array();  
      while ($r=$this->getFormSource($query)) {
        $list[]=$r;
      } 
      return $list;
  } 
  //获得最后一条记录id
  public function getInsertid(){ 
     return mysql_insert_id();
  }   /**
   * 定义添加数据的方法
   * @param string $table 表名
   * @param string orarray $data [数据]
   * @return int 最新添加的id
   */
   public function insert($table,$data){ 
    //遍历数组,得到每一个字段和字段的值
     $key_str='';
     $v_str='';  
     foreach($data as $key=>$v) {  
        if(empty($v)) {    
        die("error");
      }    
      //$key的值是每一个字段s一个字段所对应的值
      $key_str.=$key.',';
      $v_str.="'$v',";
   }
   $key_str=trim($key_str,',');
   $v_str=trim($v_str,',');   //判断数据是否为空
   $sql="insert into $table ($key_str) values ($v_str)";  
   $this->query($sql);   //返回上一次增加操做产生ID值
   return mysql_insert_id();
 } /*
  * 删除一条数据方法
  * @param1 $table, $where=array('id'=>'1') 表名 条件
  * @return 受影响的行数
  */
  public function deleteOne($table, $where){   
     if(is_array($where)){     
        foreach ($where as $key => $val) {
        $condition = $key.'='.$val;
      }
    } else {
      $condition = $where;
    }
    $sql = "delete from $table where $condition";    $this->query($sql);    //返回受影响的行数
    return mysql_affected_rows();
  }  /*
  * 删除多条数据方法
  * @param1 $table, $where 表名 条件
  * @return 受影响的行数
  */
  public function deleteAll($table, $where){   
      if(is_array($where)){ 
          foreach ($where as $key => $val) { 
                if(is_array($val)){
          $condition = $key.' in ('.implode(',', $val) .')';
        } else {
          $condition = $key. '=' .$val;
        }
      }
    } else {
      $condition = $where;
    }
    $sql = "delete from $table where $condition";    $this->query($sql);    //返回受影响的行数
    return mysql_affected_rows();
  } /**
  * [修改操作description]
  * @param [type] $table [表名]
  * @param [type] $data [数据]
  * @param [type] $where [条件]
  * @return [type]
  */
 public function update($table,$data,$where) {   //遍历数组,得到每一个字段和字段的值
      $str='';  foreach($data as $key=>$v){
      $str.="$key='$v',";
  }
     $str=rtrim($str,',');  //修改SQL语句
     $sql="update $table set $str where $where";  $this->query($sql);  //返回受影响的行数
     return mysql_affected_rows();
 }
}

本篇文章详解了PHP封装的一个单例模式Mysql操作类相关知识,更多相关知识请关注php中文网。

相关推荐:

解读php的PDO连接数据库的相关内容

如何通过php用代码实现递归获取一个数组中指定key的值

通过PHP实现读取一个1G的文件大小

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号