PHP基于单例模式实现的数据库操作基类

前端技术 2023/09/02 PHP

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

配置文件:

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

php 数据库基类:

<?php
class 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\'=>\'phpstudy\',\'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程序设计有所帮助。

本文地址:https://www.stayed.cn/item/5045

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。