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 相关文章推荐
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
php采集时被封ip的解决方法
Aug 29 PHP
php实现utf-8和GB2312编码相互转换函数代码
Feb 07 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
php实现的xml操作类
Jan 15 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 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
PHP编码规范-php coding standard
2007/03/16 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php基础学习之变量的使用
2011/06/09 PHP
php开发文档 会员收费1期
2012/08/14 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
vue--vuex详解
2019/04/15 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
python range实例用法分享
2020/02/06 Python
高中生毕业学习总结的自我评价
2013/11/14 职场文书
邀请函样本
2015/02/02 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python