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 Session变量不能传送到下一页的解决方法
Nov 27 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
解决ajax+php中文乱码的方法详解
Jun 09 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
Jan 07 PHP
php操作MongoDB类实例
Jun 17 PHP
解决微信授权回调页面域名只能设置一个的问题
Dec 11 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 PHP
php如何实现数据库的备份和恢复
Nov 30 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中文本数据翻页(留言本翻页)
2006/10/09 PHP
请php正则走开
2008/03/15 PHP
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
php实现socket推送技术的示例
2017/12/20 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
JavaScript中实现块作用域的方法
2010/04/01 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
php跨域调用json的例子
2013/11/13 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
服务理念口号
2014/06/11 职场文书
催款函范文
2015/06/24 职场文书
Java 在生活中的 10 大应用
2021/11/02 Java/Android
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技