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中的时间显示
Jan 18 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 PHP
ThinkPHP视图查询详解
Jun 30 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
PHP文件上传处理案例分析
Oct 15 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
PHP实现的简单路由和类自动加载功能
Mar 13 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
PHP策略模式写法
Apr 01 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书写安全的脚本代码
2012/02/05 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
python计算时间差的方法
2015/05/20 Python
PyQt5每天必学之布局管理
2018/04/19 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
is_file和file_exists效率比较
2021/03/14 PHP
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
八一建军节营销活动方案
2014/08/31 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
研讨会通知
2015/04/27 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
课改心得体会范文
2016/01/25 职场文书