• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-22) 16次浏览 已收录 0个评论

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

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

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

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

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

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

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

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(); } /*  * 删除一条<b style="color:transparent">(、本文来源gao@!dai!ma.com搞$$代^@码网*</b><i>搞gaodaima代码</i>数据方法  * @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(); }}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详解PHP封装的一个单例模式Mysql操作类

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址