PHP单例模式简单用法示例


Posted in PHP onJune 23, 2017

本文实例讲述了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 self();
  }
    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 = '';
    $data = '';
    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 相关文章推荐
PHP 最大运行时间 max_execution_time修改方法
Mar 08 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
php HandlerSocket的使用
May 02 PHP
PHP里的中文变量说明
Jul 23 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
php比较两个字符串长度的方法
Jul 13 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
Aug 07 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 #PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 #PHP
用PHP去掉文件头的Unicode签名(BOM)方法
Jun 22 #PHP
PHP简单装饰器模式实现与用法示例
Jun 22 #PHP
PHP实现的简单适配器模式示例
Jun 22 #PHP
php smtp实现发送邮件功能
Jun 22 #PHP
php实现页面纯静态的实例代码
Jun 21 #PHP
You might like
mysq GBKl乱码
2006/11/28 PHP
php 获取mysql数据库信息代码
2009/03/12 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
JS option location 页面跳转实现代码
2008/12/27 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
vue.js中created方法作用
2018/03/30 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
element-ui 本地化使用教程详解
2019/10/28 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
重构Python代码的六个实例
2020/11/25 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
求职者简历中的自我评价
2013/10/20 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
道歉信怎么写
2015/05/12 职场文书
自荐信范文
2019/05/20 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript