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中的数组操作函数整理
Aug 18 PHP
php explode函数实例代码
Feb 27 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
PHP等比例压缩图片的实例代码
Jul 26 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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
国内咖啡文化
2021/03/03 咖啡文化
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
PHP基本语法总结
2014/09/06 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
php实现记事本案例
2020/10/20 PHP
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
JavaScript获取时区实现过程解析
2020/09/24 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
python在不同条件下的输入与输出
2020/02/13 Python
python 实现两个npy档案合并
2020/07/01 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
预备党员党校学习自我评价分享
2013/11/12 职场文书
大学自主招生推荐信
2014/05/10 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
预备党员群众意见
2015/06/01 职场文书
党员转正意见怎么写
2015/06/03 职场文书