mysql 单例模式

require_once ('mysql_config.php');
	class msyql_db{
	  static private $_instance;
	  private $com;
	  private function __construct($db_host,$name,$db_name,$db_pwd){   //外部不能直接实例化
	   $this->com=mysql_connect($db_host,$name,$db_pwd) or die("链接数据库失败");
	   mysql_select_db($db_name);
	   mysql_query("set names utf8");
	  }

	  private function __clone(){}   //外部不能克隆类

	  static public function instance_com($dbhost,$name,$dbname,$sbpwd){
	   if(!isset(self::$_instance)){    //self表示类本身  调用静态属性时要使用 ::
	    self::$_instance= new self($dbhost,$name,$dbname,$sbpwd);  //实例化自己
	    return self::$_instance;
	   }else{

	     return self::$_instance;

	   }
	  }

	  function select($sql){ //获得多条数据,二维数组
	   	$result=mysql_query($sql);
	    $arr=array();
	    while($row=mysql_fetch_assoc($result)){
	    	$arr[]=$row;
	    }
	    return $arr;
	  }

	  function select1($sql){
	  	$result=mysql_query($sql);
	  	return mysql_fetch_assoc($result);
	  }

	  function count($sql){
	  		$result=mysql_query($sql);
	  		return mysql_num_rows($result);
	  }

	  function query($sql){
	  	return mysql_query($sql);
	  }

	  function get_last_id(){
	  	$sql="select last_insert_id() as last_id";
	  	$result=mysql_query($sql);
	  	$result=mysql_fetch_assoc($result);
	  	return $result["last_id"];
	  }

	  function insert($post){  //insert 语句 合并字段和对应的值
  		$cloum="";
		$value="";
		foreach ($post as $k=>$v){
			if ($k!="type"){
				$cloum .= ",`".$k."`";
				$value .= ",'".$v."'";
			}
		}
		$cloum=substr($cloum,1);
		$value=substr($value,1);
		return array("cloum"=>$cloum,"value"=>$value);
	  }

	  function update($post){ //update 语句 合并字段和对应的值
	  	$str="";
	  	foreach ($post as $k=>$v){
	  		if ($k!="type"){
	  			$str .= ",`".$k."`='".$v."'";
	  		}
	  	}
	  	return substr($str,1);
	  }

	 }

	 //$test=new one("localhost","root","online","");

	 $db = msyql_db::instance_com($db_host,$db_user,$db_db,$db_pwd);  //调用静态方法的时候要使用::

时间: 2024-08-26 16:57:06

mysql 单例模式的相关文章

PHPExcel探索之旅---阶段一

类似于Java,php也有操作Excel的方法,其中需要下载PHPExcel插件,将其中的Classes文件夹改名为PHPExcel并提取到根文件夹外面,将两个文件夹一起放在所需项目中 使用PHPExcel插件需要先实例化一个PHPExcel对象 整个过程需要用到以下函数: new PHPExcel() ----新建一个PHPExcel对象 createSheet() -----新建一个sheet表 setActiveSheetIndex() ---- 通过下标设置活动sheet表 getAct

简单ORM的实现

简单的orm实现 我们在使用各种框架的时候,关于数据库这方面的使用,框架给我们提供了很好的封装,这个就是orm 关系映射 orm的底层无非就是做了关系映射 数据库的表(table) --> 类(class) 记录(record,行数据)--> 对象(object) 字段(field)--> 对象的属性(attribute) ORM设计 字段 首先是字段,每个字段都有很多的字段属性,然后考虑到,每个表的字段可能都不同,为了给他提供更好的拓展性,所以这里我们选择用类来封装 class Fie

Python实现简单框架及三大框架对比

手撸web框架 简单的请求响应实现 要实现最简单的web框架,首先要对网络熟悉,首先HTTP协议是应用层的协议,只要我们给数据加上HTTP格式的响应报头,我们的数据就能基于socket进行实现了 import socket sever = socket.socket() sever.bind(('127.0.0.1',10000)) sever.listen(5) while True: conn,addr = sever.accept() data = conn.recv(1024) prin

设计模式 - 单例模式mysql数据库操作类

待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php'; $db = MySQLDB::getInstance('127.0.0.1:3306', 'root', '123456', 'test'); $db->insertData(); instance.php 单例操作类: <?php /** * 单例模式MySQL数据库操作类 */ clas

php单例模式实现对象只被创建一次 mysql单例操作类

这是我在php面试题中遇到的一道试题,单例模式按字面来看就是某一个类只有一个实例,这样做的好处还是很大的,比如说数据库的连接,我们只需要实例化一次,不需要每次都去new了,这样极大的降低了资源的耗费. 单例类至少拥有以下三种公共元素: 必须拥有一个构造函数,并且必须被标记为private. 拥有一个保存类的实例的静态成员变量. 拥有一个访问这个实例的公共的静态方法 具体使用方面,在下面php实例中注释的很清楚: 1 <?php 2 /** 3 * by www.phpddt.com 4 */ 5

PHP封装的一个单例模式Mysql操作类

掌握满足单例模式的必要条件----三私一公. ①私有的构造方法-为了防止在类外使用new关键字实例化对象. ②私有的成员属性-为了防止在类外引入这个存放对象的属性. ③私有的克隆方法-为了防止在类外通过clone成生另一个对象. ④公有的静态方法-为了让用户进行实例化对象的操作. DB类及相关表操作: class mysql_db{     //1.私有的静态属性   private static $dbcon = false;     //2.私有的构造方法   private functio

php 单例模式封装MySQL类

class MysqlConn { //定义一个私有的静态属性,用来存放实例化的对象 private static $dbcon; //定义一个私有的静态属性,用来存在数据库的连接 private static $conn; //定义一个私有的解构函数,进行数据库的连接 private function __construct() { self::$conn = mysqli_connect($host,$username,$password,$dbname) or die('链接失败:'.my

python使用单例模式创建MySQL链接

代码: from functools import wraps import mysql.connector from sshtunnel import SSHTunnelForwarder def singleton(cls): instances = {} @wraps(cls) def get_instance(*args, **kw): if cls not in instances: instances[cls] = cls(*args, **kw) return instances[

再谈谈java的单例模式

原来转载过一篇关于单例模式的博客 http://blog.csdn.net/u011700281/article/details/21951795 现在自己由于实现一些管理器(比如 mysq了连接的管理器,redis的连接管理器,以及config的连接管理器),经常用到单例模式,不过,公司内的单例模式的实现方法有很多,自己也跟着总结一下. 首先,为什么需要单例模式呢?比如,你需要获得一个mysql连接,你肯定希望所有mysql的连接池是被一个对象管理的,而不希望你从这个对象可以获得连接,从另一个