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新手上路(五)
Oct 09 PHP
PHP 变量定义和变量替换的方法
Jul 30 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
Feb 18 PHP
一个严格的PHP Session会话超时时间设置方法
Jun 10 PHP
php防止站外远程提交表单的方法
Oct 20 PHP
php文件缓存类汇总
Nov 21 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
php获取ajax的headers方法与内容实例
Dec 27 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 中的类
2006/10/09 PHP
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
PHP Reflection API详解
2015/05/12 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
python 链接和操作 memcache方法
2017/03/04 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
详解Python实现进度条的4种方式
2020/01/15 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
初中毕业感言300字
2015/07/31 职场文书
入党申请书怎么写?
2019/06/21 职场文书