PHP单例模式简单用法示例

发布时间 - 2026-01-11 02:01:08    点击率:

本文实例讲述了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基本语法入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # 单例模式  # PHP实现单例模式最安全的做法  # php单例模式实现(对象只被创建一次)  # php利用单例模式实现日志处理类库  # PHP最常用的2种设计模式工厂模式和单例模式介绍  # php设计模式 Singleton(单例模式)  # php基于单例模式封装mysql类完整实例  # PHP基于单例模式实现的mysql类  # PHP基于单例模式编写PDO类的方法  # php设计模式 Template (模板模式)  # PHP设计模式之观察者模式(Observer)详细介绍和代码实例  # php设计模式 Proxy (代理模式)  # php设计模式小结  # 程序设计  # 操作技巧  # 相关内容  # 感兴趣  # 给大家  # 更多关于  # 所述  # 面向对象  # 你啦  # 编程技巧  # 讲述了  # mysql_connect  # gt  # user  # host  # __construct  # function  # config  # require_once  # password 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何撰写建站申请书?关键要点有哪些?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Python函数文档自动校验_规范解析【教程】  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  利用python获取某年中每个月的第一天和最后一天  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  JS经典正则表达式笔试题汇总  如何挑选最适合建站的高性能VPS主机?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  如何在云指建站中生成FTP站点?  5种Android数据存储方式汇总  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  移动端脚本框架Hammer.js  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  如何在IIS管理器中快速创建并配置网站?  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何在IIS中新建站点并配置端口与物理路径?  免费视频制作网站,更新又快又好的免费电影网站?  如何快速建站并高效导出源代码?  青岛网站建设如何选择本地服务器?  如何用虚拟主机快速搭建网站?详细步骤解析  iOS UIView常见属性方法小结  实例解析angularjs的filter过滤器  php 三元运算符实例详细介绍  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  EditPlus中的正则表达式 实战(1)  如何快速查询域名建站关键信息?  实例解析Array和String方法  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  如何自定义建站之星网站的导航菜单样式?  Python3.6正式版新特性预览  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  三星网站视频制作教程下载,三星w23网页如何全屏?