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
基于mysql的bbs设计(三)
Oct 09 PHP
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
详解PHP导入导出CSV文件
Nov 03 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
Laravel框架分页实现方法分析
Jun 12 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/01 无线电
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
Ionic快速安装教程
2016/06/03 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python sys.argv[]用法实例详解
2018/05/25 Python
python 文件查找及内容匹配方法
2018/10/25 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
个人找工作求职简历的自我评价
2013/10/20 职场文书
自我评价怎么写正确呢?
2013/12/02 职场文书
优秀学生自我鉴定范例
2013/12/18 职场文书
自主招生自荐信指南
2014/02/04 职场文书
交通事故调解协议书
2014/04/16 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
2015年调度员工作总结
2015/04/30 职场文书