<?php
class db
{
public $host ;//= "localhost";//定义默认连接方式
public $User;//= "root";//定义默认用户名
public $Pwd;//= "root";//定义默认的密码
public $Dbname ;//= "thkphp5";//定义默认的数据库名
public $my_sql;
public $link;
public $result;
// protected static $_dbh = null; //静态属性,所有数据库实例共用,避免重复连接数据库,这个是学来的,看的别人的代码,觉得不错,摘过来的
/********************************************************************
********************************************************************
** 下面的这个就是单利模式所需要的代码 *******
*******************************************************************************/
public static function instance($config){
if(!isset($this->link){
$this->link=new self($config);
//这里还可以这样写:
//$this->link=$this->__construct($config);
//因为实例化对象就是调用一次类的__construct()函数。 }
return $this->link; }
//下面的这个克隆函数变成私有的,这样就能在类的外面克隆了。
private function __clone(){}
/********************************************************************
********************************************************************
** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *******
*******************************************************************************/
/*
* 构造函数
* 主机名,使用者,使用者密码,数据库的名字,查询语句
*/
public function __construct($config) {
$this->host=$config['host'];
$this->User=$config['user'];
$this->Pwd=$config['pwd'];
$this->Dbname=$config['dbname'];
$this->my_sql=$config['sql'];
//这个也是摘过来的的(if)
//if ( is_null(self::$_dbh) ) {
$this->link= $this->_connect();
// }
$this->result= $this->Query($this->my_sql); } //成员方法 是用来执行sql语句的方法
/*
* 数据库查询函数
* $sql string 是你的查询语句
*/
public function Query($sql)
//两个参数:sql语句,判断返回1查询或是增删改的返回
{
$db = $this->connect();
$r = $db->query($sql);
if (isset($r)) {
return $r->fetch_all();//查询语句,返回数组.执行sql的返回方式是all,也可以换成row
} else {
return "数据库查询失败!";
} }
/*
* 数据库连接函数
*/
public function connect(){
$Link= mysqli_connect($this->host,$this->User,$this->Pwd,$this->Dbname);
          //$this->dbh=
return $Link;
} }
//$sql='select * from zixun;';
//$config=include './BBB.php';
// $shujuku=new db($config); // include './login.html';
//var_dump($shujuku->result); ?>

注意在实例化具有了单例模式函数的类时,是这样实例化的:                         类名::instance($config);

52)PHP,加了单例模式的数据库代码的更多相关文章

  1. JDBC连接MySQL数据库代码

    ******************************************************1********************************************* ...

  2. php与数据库代码开发规范

    php与数据库代码开发规范 1/25/2016 6:00:31 PM php对各类变量命名规范 目录名 文件命名 局部变量命名 使用英文动词名词,用下划线作为单词的分割,所有字母均使用小写 目录 up ...

  3. Global.asax中的操作数据库代码无法执行

    本人最近在做一个基于Access数据库的Web应用程序,为了实现一个定时更新数据库的需求,我在Global.asax中的Application_Start函数里写了个计时器, void Applica ...

  4. SQLAlchemy加载数据到数据库

    SQLAlchemy加载数据到数据库 最近在研究基于知识图谱的问答系统,想要参考网上分享的关于NLPCC 2016 KBQA任务的经验帖,自己实现一个原型.不少博客都有提到,nlpcc-kbqa训练数 ...

  5. spring jdbc分离数据库代码和java代码

    读取配置文件类 package com.eshore.ismp.contract.sql; import java.io.FileInputStream; import java.io.FileNot ...

  6. 使用Python编程语言连接MySQL数据库代码

    使用Python编程语言连接MySQL数据库代码,跟大家分享一下: 前几天我用python操作了mysql的数据库,发现非常的有趣,而且python操作mysql的方法非常的简单和快速,所以我把代码分 ...

  7. C#(asp.net)备份还原mssql数据库代码【转】

    采集自互联网,未验证..... 如果我们使用虚拟主机为网站空间,这时如果需要备份和还原msssql数据库是非常麻烦,如果在网站后台管理当中加入对msssql数据库的操纵,可以使我们对数据库的备份和还原 ...

  8. (转)PHP连接数据库之PHP连接MYSQL数据库代码

    PHP连接数据库之PHP连接MYSQL数据库代码 < ?php $mysql_server_name='localhost'; //改成自己的mysql数据库服务器 $mysql_usernam ...

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

    待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...

随机推荐

  1. c++的符号表的肤浅认识

    符号表是编译期产生的一个hash列表,随着可执行文件在一起 示例程序 int a = 10; int b; void foo(){ static int c=100; } int main(){ in ...

  2. UVA - 1629 Cake slicing(切蛋糕)(dp---记忆化搜索)

    题意:有一个n行m列(1<=n, m<=20)的网格蛋糕上有一些樱桃.每次可以用一刀沿着网格线把蛋糕切成两块,并且只能够直切不能拐弯.要求最后每一块蛋糕上恰好有一个樱桃,且切割线总长度最小 ...

  3. nginx重写常用写法

    1.将http协议重写成https协议: (用户用http进行访问,但后端是https),则可添加80 http端口监听,然后进行https rewrite; server {     listen ...

  4. 毕设问题 ---链接Dreamweaver和eclipse

    在eclipse里面新建站点   https://blog.csdn.net/Slash_youth  我是一个搬运工  哈哈哈

  5. 82.常用的返回QuerySet对象的方法使用详解:all,select_related

    1. all: 返回这个ORM模型的QuerySet对象. articles = Article.objects.all() print(articles) 2.select_related: 查找数 ...

  6. python基础2--进制、字符编码和文件处理

    一.进制 1.二进制 定义 二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一"   转换方式 二进制转换为十进制: 把二进制数按权展开.相加即得十进制数. ...

  7. POJ 2976 Dropping tests【0/1分数规划模板】

    传送门:http://poj.org/problem?id=2976 题意:给出组和,去掉对数据,使得的总和除以的总和最大. 思路:0/1分数规划 设,则(其中等于0或1) 开始假设使得上式成立,将从 ...

  8. jquery判断字符串中是否包含特定字符的方法总结

    方法一:使用indexOf() 和lastIndexOf()方法 案例: var Cts = "bblText"; if(Cts.indexOf("Text") ...

  9. 绩效软件交流-ZQDJ

    积分制(主管激励下属)短期任务积分 长期任务积分 制度积分 固定积分任务工作项 评估表 ,取中间值工时调整 工作表现 创新加分 难度加分 贡献加分 绩效分-积分(软件亮点)  分开做 没有管理员的中层 ...

  10. mysql脚本文件

    DELIMITER $$ -- USE `dev_seal_chip_sell_ms_v1`$$; DROP FUNCTION IF EXISTS `GET_ORDER_STATUS`$$ CREAT ...