<?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指针<一>

    指针和内存 C程序在编译后,会以三种形式使用内存: 静态.全局内存:静态变量和全局变量使用这部分内存,生存周期为整个程序运行时,全局变量所有函数都可以访问,但静态变量虽然生存周期为整个程序运行时,但作 ...

  2. Map 查找表操作

    package seday13; import java.util.HashMap; import java.util.Map; /** * @author xingsir * java.util.M ...

  3. Java中Scanner类在nextInt()后无法输入nextLine()的问题

    首先,Scanner是一个扫描器,它扫描数据都是去内存中一块缓冲区中进行扫描并读入数据的,而我们在控制台中输入的数据也都是被先存入缓冲区中等待扫描器的扫描读取.这个扫描器在扫描过程中判断停止的依据就是 ...

  4. java8中的map 和reduce

    map 1.使用map让集合里面的数字翻倍. List<Integer> numbers = Lists.newArrayList(1,2,3,4,5);List<Integer&g ...

  5. Dynamics CRM - 如何通过 C# Plugin 给 Contact的 主键(FullName)赋值

    Contact 是 CRM 默认带有的 Entity,主键是 <FullName>,根据开发需求,与主键相关的字段都被设置成隐藏,包括了<Full Name>,<Firs ...

  6. OpenMP笔记(二)

    原文:https://www.bearoom.xyz/2019/02/18/openmp2/ OpenMP是由三部分组成的:指令.库函数和环境变量. 一.指令 在C/C++中使用OpenMP需要用到的 ...

  7. js 动画滚动到指定位置 ES6

    ### 开始 ### 写一个自动滚动过度到指定位置的一个函数 通过Class进行封装 /** * 滚动动画过度 * @param {Object} position 定位(只支持Y轴) * @para ...

  8. java反射修改静态方法的值setAccessible

    这几天闲来无事.在网上看了一个题目,相信大家都知道这个题目  static void change(String str){         str="welcome";     ...

  9. Xcode中SVN不能提交.a及其他文件

    Xcode默认忽略的.a 文件.所以无法提交到svn服务器,但是很多第三方的库都有.a文件.所以还是必须提交到服务器. 搜索了一下解决方案: http://wpt205.blog.163.com/bl ...

  10. 遇到屏蔽selenium的站点如何突破

    访问某团外卖,查看下一页商家信息,正常浏览器可以打开, selenium打开就404, 分析请求参数,生成方法最后定位到 rohr*.js  而且有判断selenium特征 抓耳挠腮搞了半天没把这个j ...