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安装全攻略:APACHE
Oct 09 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
十大使用PHP框架的理由
Sep 26 PHP
Yii2单元测试用法示例
Nov 12 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
PHP保存Base64图片base64_decode的问题整理
Nov 04 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 PHP
PHP重载基础知识回顾
Sep 10 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源代码数组统计count分析
2011/08/02 PHP
php图片添加水印例子
2016/07/20 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
Javascript 二维数组
2009/11/26 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
JQuery学习总结【一】
2016/12/01 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
python正则表达式之作业计算器
2016/03/18 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
某公司面试题
2012/03/05 面试题
控制工程专业个人求职信
2013/09/25 职场文书
书香校园建设方案
2014/05/02 职场文书
家庭贫困证明
2014/09/23 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
写给领导的感谢信
2015/01/22 职场文书
入党自荐书范文
2015/03/05 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python