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 相关文章推荐
php4的session功能评述(三)
Oct 09 PHP
PHP SQLite类
May 07 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
Dec 22 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
使用PHP编写发红包程序
Jul 22 PHP
php去掉文件前几行的方法
Jul 29 PHP
php支持断点续传、分块下载的类
May 02 PHP
php 修改上传文件大小限制实例详解
Oct 23 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
Feb 15 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
解决php扩展安装不生效问题
Oct 25 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
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python实现telnet服务器的方法
2015/07/10 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
理论讲解python多进程并发编程
2018/02/09 Python
Python中反射和描述器总结
2018/09/23 Python
python3.6编写的单元测试示例
2019/08/17 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
国际书籍零售商:Wordery
2017/11/01 全球购物
捷克时尚网上商店:OTTO
2018/03/15 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
党校培训思想汇报
2013/12/30 职场文书
《忆江南》教学反思
2014/04/07 职场文书
见习报告怎么写
2014/10/31 职场文书
防暑降温通知书
2015/04/27 职场文书
2015年高中班级工作总结
2015/07/21 职场文书