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 相关文章推荐
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
PHP 递归效率分析
Nov 24 PHP
分享一个php 的异常处理程序
Jun 22 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
cakephp打印sql语句的方法
Feb 13 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
php判断邮箱地址是否存在的方法
Feb 13 PHP
PHP正则获取页面所有图片地址
Mar 23 PHP
php创建图像具体步骤
Mar 13 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 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 图像函数大举例(非原创)
2009/06/20 PHP
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
Prototype Date对象 学习
2009/07/12 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
小学生开学第一课活动方案
2014/03/27 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
学校师德师风整改方案
2014/10/28 职场文书
网络营销计划书
2015/01/17 职场文书
永不妥协观后感
2015/06/10 职场文书
公司老总年会致辞
2015/07/30 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL