网络编程
位置:首页>> 网络编程>> php编程>> PHP单例模式简单用法示例

PHP单例模式简单用法示例

作者:北京流浪儿  发布时间:2023-11-18 19:45:41 

标签:PHP,单例模式

本文实例讲述了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程序设计有所帮助。

0
投稿

猜你喜欢

  • 准备工作去年的时候,青云发表过关于栅格系统的文章 . 我们知道网页的栅格系统是运用固定的格子设计版面布局,使其风格工整简洁. 视觉上来说,栅
  • 阅读上一节:美化段落文本 Ⅰweb标准知识——美化段落文本 Ⅱ懒,可能是唯一解释为什么这么长时间才写这一篇的主要原因。不述详情,以此责心。上
  • 复制代码CREATE FUNCTION fGetStrBySplit ( @Source VARCHAR(max), @Index INT,
  • 一:最近,经常碰到有网友问,如何使vbscript和javascipt传递变量。不知道为什么要这么做。因为每一种脚本语言几乎都可以完成所需要
  • 我们在用Drwamweaver书写英文文本时,段落一般不缩进(不支持半角空格);但我们大多的时候都是用中文书写格式,必须在每段开头空两个汉字
  • 解决办法: 1.新建一个同名的数据库(数据文件与原来的要一致) 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文
  • 在讨论IE6的BUG及如何修复之前,有必要讲叙一些策略去避免这些恼人的问题——正所谓防患于未然 。IE6 市场占有率据Market Shar
  • hasOwnPropertyhasOwnProperty是javascript中用于检测对象是否包含某个属性的方法,返回一个布尔值。var
  • Security vulnerability in MySQL/MariaDB 在知道用户名的情况下(如root),直接反复重试(平均大约2
  • 自己从工艺品设计到平面设计到网络设计,虽然设计原则不离其宗,但经验下来的心得告诉自己,设计媒介的变化带来很多媒介自身的特殊性,下面总结下网站
  • 先来看个例子:需求为生成4位数,不足前面补0<?php  //生成4位数,不足前面补0  $var=sprintf
  • 一、出错情况 有些时候当你重启了数据库服务,会发现有些数据库变成了正在恢复、置疑、可疑等情况,这个时候DBA就会很紧张了,下面是一些在实践中
  • 将有安全问题的SQL过程删除,比较全面.一切为了安全!删除了调用shell,注册表,COM组件的破坏权限use master&nb
  • 目的: 从数据库读取二进制位图图形数据资料, 透过 ImageMagickObject 组件即时制作缩略图,并显示在网页上 (ge
  • 定义流的作用是使用统一的方式处理文件、网络和数据压缩等共用同一套函数和用法的操作。简单而言,流是具有流式行为的资源对象。因此,流可以线性读写
  • 啊,inline-block,挺难琢磨并且迷人的声明上承诺了很多,其实提供了很少。很多次我拿到类似这样的 PSD 文件:就哭了。一般说来,这
  • 导语大家以前应该都听说过一个游戏:叫做走四棋儿这款游戏出来到现在时间挺长了,小时候的家乡农村条件有限,附近也没有正式的玩具店能买到玩具,因此
  • 1. position:static所有元素的默认定位都是:position:static,这意味着元素没有被定位,而且在文档中出现在它应该
  • 如何使整个页面内容居中,如何使高度适应内容自动伸缩。这是学习CSS布局最常见的问题。下面就给出一个实际的例子,并详细解释。(本文的经验和是蓝
  • 事实上,互联网用户浏览网页的习惯和顾客浏览商店中物品的习惯没有多大差别。用户打开一个新的页面,扫视一些文字,并点击第一个引起他兴趣的链接。在
手机版 网络编程 asp之家 www.aspxhome.com