PHP基于单例模式实现的数据库操作基类
author:一佰互联 2019-04-27   click:170

本文实例讲述了PHP基于单例模式实现的数据库操作基类。分享给大家供大家参考,具体如下:

配置文件:

<?php$db = array(    "host"=>"localhost",    "user"=>"root",    "password"=>"",    "database"=>"test",)?>

php 数据库基类:

<?phpclass db {  public $conn;  public static $sql;  public static $instance=null;  private function __construct(){    require_once("db.config.php");    $this->conn = mysql_connect($db["host"],$db["user"],$db["password"]);    if(!mysql_select_db($db["database"],$this->conn)){      echo "失败";    };    mysql_query("set names utf8",$this->conn);  }  public static function getInstance(){    if(is_null(self::$instance)){      self::$instance = new db;    }    return self::$instance;  }  /**   * 查询数据库   */  public function select($table,$condition=array(),$field = array()){    $where="";    if(!empty($condition)){      foreach($condition as $k=>$v){        $where.=$k."="".$v."" and ";      }      $where="where ".$where ."1=1";    }    $fieldstr = "";    if(!empty($field)){      foreach($field as $k=>$v){        $fieldstr.= $v.",";      }       $fieldstr = rtrim($fieldstr,",");    }else{      $fieldstr = "*";    }    self::$sql = "select {$fieldstr} from {$table} {$where}";    $result=mysql_query(self::$sql,$this->conn);    $resuleRow = array();    $i = 0;    while($row=mysql_fetch_assoc($result)){      foreach($row as $k=>$v){        $resuleRow[$i][$k] = $v;      }      $i++;    }    return $resuleRow;  }  /**   * 添加一条记录   */   public function insert($table,$data){    $values = "";    $datas = "";    foreach($data as $k=>$v){      $values.=$k.",";      $datas.=""$v"".",";    }    $values = rtrim($values,",");    $datas  = rtrim($datas,",");    self::$sql = "INSERT INTO {$table} ({$values}) VALUES ({$datas})";    if(mysql_query(self::$sql)){      return mysql_insert_id();    }else{      return false;    };   }   /**   * 修改一条记录   */  public function update($table,$data,$condition=array()){    $where="";    if(!empty($condition)){      foreach($condition as $k=>$v){        $where.=$k."="".$v."" and ";      }      $where="where ".$where ."1=1";    }    $updatastr = "";    if(!empty($data)){      foreach($data as $k=>$v){        $updatastr.= $k."="".$v."",";      }      $updatastr = "set ".rtrim($updatastr,",");    }    self::$sql = "update {$table} {$updatastr} {$where}";    return mysql_query(self::$sql);  }  /**   * 删除记录   */   public function delete($table,$condition){    $where="";    if(!empty($condition)){      foreach($condition as $k=>$v){        $where.=$k."="".$v."" and ";      }      $where="where ".$where ."1=1";    }    self::$sql = "delete from {$table} {$where}";    return mysql_query(self::$sql);   }  public static function getLastSql(){    echo self::$sql;  }}$db = db::getInstance();//$list = $db->select("demo",array("name"=>"tom","password"=>"ds"),array("name","password"));//echo $db->insert("demo",array("name"=>"网页设计","password"=>"123"));//echo $db->update("demo",array("name"=>"xxx","password"=>"123"),array("id"=>1));echo $db->delete("demo",array("id"=>"2"));db::getLastSql();echo "<pre>";?>

更多关于PHP操作数据库相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《PHP基于pdo操作数据库技巧总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。