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字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
php socket客户端及服务器端应用实例
Jul 04 PHP
dedecms中使用php语句指南
Nov 13 PHP
thinkPHP批量删除的实现方法分析
Nov 09 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
Oct 18 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
URL Rewrite的设置方法
2007/01/02 PHP
遍历指定目录下的所有目录和文件的php代码
2011/11/27 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
jQuery之选择组件的深入解析
2013/06/19 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python实现的文件夹清理程序分享
2014/11/22 Python
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
利用python画出AUC曲线的实例
2020/02/28 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
《灰椋鸟》教学反思
2014/04/27 职场文书
2014年施工员工作总结
2014/11/18 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
百家讲坛观后感
2015/06/12 职场文书
Python语言中的数据类型-序列
2022/02/24 Python