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
, 单例模式
基类
单例基类、单例模式基类、数据库连接单例模式、php 数据库单例模式、数据库单例模式,以便于您获取更多的相关知识。

时间: 2025-01-19 10:58:06

PHP基于单例模式实现的数据库操作基类_php技巧的相关文章

php实现的简单数据库操作Model类_php技巧

本文实例讲述了php实现的简单数据库操作Model类.分享给大家供大家参考,具体如下: 该数据库模型类可实现数据库的增删改查,简化数据库操作. 1. config.php代码: <?php define("HOSTNAME","127.0.0.1"); define("USERNAME","root"); define("PASSWORD",""); define("DA

php mysql数据库操作分页类_php技巧

复制代码 代码如下: <?php /*  *    mysql数据库 分页类  *    @package    pagelist  *    @author        yytcpt(无影)  *    @version    2008-03-27  *    @copyrigth    http://www.d5s.cn/   */ /*  *    分页样式     .page{float: left;font: 11px Arial, Helvetica, sans-serif; pa

php中文本操作的类_php技巧

给大家一个简单的文本操作的类  我以前写的,不过一直都没机会用了,文本不如数据库 数据是以行保存的,以\n结尾,注意你输入的数据必须以"\n"结尾的,这是几个最基本的类成员,文本的特别要注意效率问题,比如你要更新文件的2,3,4行,用: for($i=2;$i<=4;$i++)$this->update($file,$i,$msg);不如这样的: $data=$this->read($file); for($i=2;$i<=4;$i++)$data[$i]=$m

求助高手-这个数据库操作基类的作用

问题描述 privatestringInsertEntity(DataRowdsRow,ArrayListaList,stringtbName){intj=0;stringsReturn="-1";stringstrInsert="",strValues="",strField,sValue="";//boolbContinue=true;FieldDefField;stringstrIdentity=""

基于PHP对XML的操作详解_php技巧

<?php      $xml = simplexml_load_file('example.xml');              //创建SimpleXML对象       var_dump($xml);                                                             //输出XML   ?>  <?php      $xml = simplexml_load_file('example.xml');          //读取

php数据库操作model类(使用__call方法)_php技巧

本文实例讲述了php数据库操作model类.分享给大家供大家参考,具体如下: 该数据库操作类使用__call()方法实现了数据的查找功能. 代码如下: <?php /* 作者 : shyhero */ define("HOSTNAME","127.0.0.1"); define("USERNAME","root"); define("PASSWORD",""); define(&q

PHP数据库操作Helper类完整实例_php技巧

本文实例讲述了PHP数据库操作Helper类.分享给大家供大家参考,具体如下: php操作数据库分为几个步骤(这里以MYSQL为例): 1. 建立连接 $connection=mysql_connect($db_host,$db_username,$db_password); 2. 选择数据库 $db_select=mysql_select_db($db_database); 3. 执行CRUD操作 mysql_query("set names 'utf8'");//编码 $resul

Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页_实用技巧

/**********************************************************************************  *   * 功能说明:XML处理基类  * 作者: 刘功勋;  * 版本:V0.1(C#2.0);时间:2006-12-13  *   * *******************************************************************************/ using System;

PHP开发环境配置(MySQL数据库安装图文教程)_php技巧

一. MySQL的安装 运行MYSQL安装程序(mysql-essential-5.1.40-win32.msi) 开发环境配置(MySQL数据库安装图文教程)_php技巧-mysql数据库主从配置">   选择安装类型为Custom   点选Change按钮更改安装目录   将安装目录更改为到D盘(可根据自己的系统更改)     点击Install按钮开始安装   安装程序将开始安装MySQL到指定的路径中     安装过程中汇出现一些广告点Next跳过即可.     安装完成后出现以下