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 相关文章推荐
5.PHP的其他功能
Oct 09 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
Jun 21 PHP
PHP 事务处理数据实现代码
May 13 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
PHP中header函数的用法及其注意事项详解
Jun 13 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
PHP实现微信退款功能
Oct 02 PHP
PHP的mysqli_stat()函数讲解
Jan 23 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 PHP
PHP递归算法的简单实例
Feb 28 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/02 无线电
php四种基础算法代码实例
2013/10/29 PHP
非常好用的Zend Framework分页类
2014/06/25 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
js 函数调用模式小结
2011/12/26 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
Django自定义分页效果
2017/06/27 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
网络编辑求职信
2014/04/30 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
经销商会议开幕词
2016/03/04 职场文书