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之第二天
Oct 09 PHP
PHP网站基础优化方法小结
Sep 29 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
$_GET['goods_id']+0 的使用详解
Jun 06 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
php密码生成类实例
Sep 24 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
php自定义hash函数实例
May 05 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
Yii 框架入口脚本示例分析
May 19 PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 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伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
vue环境搭建简单教程
2017/11/07 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
python处理json数据中的中文
2014/03/06 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
python__name__原理及用法详解
2019/11/02 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
文明餐桌活动方案
2014/02/11 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
妇产科护理心得体会
2016/01/22 职场文书