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 相关文章推荐
关于BIG5-HKSCS的解决方法
Mar 20 PHP
php中如何防止表单的重复提交
Aug 02 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
Apr 20 PHP
浅谈Laravel队列实现原理解决问题记录
Aug 19 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
laravel 错误处理,接口错误返回json代码
Oct 25 PHP
php7 list()、session及其他模块的修改实例分析
May 25 PHP
php7中停止php-fpm服务的方法详解
May 09 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下载xls文件(自己动手写的)
2014/04/18 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
js constructor的实际作用分析
2011/11/15 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
如何利用python发送邮件
2020/09/26 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
经济学人订阅:The Economist
2018/07/19 全球购物
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
仓管岗位职责范本
2014/02/08 职场文书
高中打架检讨书
2014/02/13 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
九一八事变演讲稿
2014/09/05 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
Nginx反向代理学习实例教程
2021/10/24 Servers
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS