当前位置: 首页 > 编程笔记 >

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

仰欣悦
2023-03-14
本文向大家介绍PHP基于单例模式实现的数据库操作基类,包括了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'=>'小牛知识库','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程序设计有所帮助。

 类似资料:
  • 本文向大家介绍PHP基于单例模式实现的mysql类,包括了PHP基于单例模式实现的mysql类的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP基于单例模式实现的mysql类。分享给大家供大家参考,具体如下: 更多关于PHP数据库操作相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《PHP基于pdo操作数据库技巧总结》及《php常见数据库操作技巧汇总》 希

  • 本文向大家介绍php基于session实现数据库交互的类实例,包括了php基于session实现数据库交互的类实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php基于session实现数据库交互的类。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。

  • 基于FMDB的数据库增删改查Demo。其中包括 statusBar 上显示Log的用法。仅支持ARC。比较适合新手。 [Code4App.com]

  • 本文向大家介绍php基于单例模式封装mysql类完整实例,包括了php基于单例模式封装mysql类完整实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php基于单例模式封装mysql类。分享给大家供大家参考,具体如下: 类: 测试: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《

  • 本文向大家介绍nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例,包括了nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了nodejs基于mssql模块连接sqlserver数据库的简单封装操作。分享给大家供大家参考,具体如下: 注意:开启sqlserver服务器允许远程连接的步骤,自行百度

  • 本文向大家介绍基于JS实现PHP的sprintf函数实例,包括了基于JS实现PHP的sprintf函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了基于JS实现PHP的sprintf函数。分享给大家供大家参考,具体如下: 函数如下: 第一个参数是包含的“%s”的字符串,其他参数是对应的用来替换“%s”的变量。 如: 希望本文所述对大家JavaScript程序设计有所帮助。