1 <?php
 2     class db
 3     {
 4         public $host ;//= "localhost";//定义默认连接方式
 5         public $User;//= "root";//定义默认用户名
 6         public $Pwd;//= "root";//定义默认的密码
 7         public $Dbname ;//= "thkphp5";//定义默认的数据库名
 8         public $my_sql;
 9         public $link;
10         public $result;
11        //  protected static $_dbh = null; //静态属性,所有数据库实例共用,避免重复连接数据库,这个是学来的,看的别人的代码,觉得不错,摘过来的
12        /********************************************************************
13        ********************************************************************
14        **         下面的这个就是单利模式所需要的代码           *******
15        *******************************************************************************/
16          public static function instance($config){
17             if(!isset($this->link){
18                 $this->link=new self($config);
19                 //这里还可以这样写:
20                 //$this->link=$this->__construct($config);
21                 //因为实例化对象就是调用一次类的__construct()函数。
22
23             }
24             return $this->link;
25
26          }
27          //下面的这个克隆函数变成私有的,这样就能在类的外面克隆了。
28          private function __clone(){}
29          /********************************************************************
30        ********************************************************************
31        **         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!           *******
32        *******************************************************************************/
33           /*
34          * 构造函数
35          * 主机名,使用者,使用者密码,数据库的名字,查询语句
36          */
37         public function __construct($config) {
38         $this->host=$config['host'];
39         $this->User=$config['user'];
40         $this->Pwd=$config['pwd'];
41         $this->Dbname=$config['dbname'];
42         $this->my_sql=$config['sql'];
43 //这个也是摘过来的的(if)
44         //if ( is_null(self::$_dbh) ) {45            $this->link= $this->_connect();
46        // }
47       $this->result=  $this->Query($this->my_sql);
48
49         }
50
51         //成员方法   是用来执行sql语句的方法
52         /*
53          * 数据库查询函数
54          * $sql   string   是你的查询语句
55          */
56         public function Query($sql)
57             //两个参数:sql语句,判断返回1查询或是增删改的返回
58         {
59             $db = $this->connect();
60             $r = $db->query($sql);
61             if (isset($r)) {
62                 return $r->fetch_all();//查询语句,返回数组.执行sql的返回方式是all,也可以换成row
63             } else {
64                 return "数据库查询失败!";
65             }
66
67
68         }
69         /*
70          * 数据库连接函数
71          */
72         public function connect(){
73             $Link= mysqli_connect($this->host,$this->User,$this->Pwd,$this->Dbname);
74           //$this->dbh=
75             return $Link;
76         }
77
78     }
79     //$sql='select * from zixun;';
80     //$config=include './BBB.php';
81   // $shujuku=new db($config);
82
83
84 //  include './login.html';
85 //var_dump($shujuku->result);
86
87 ?>

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

转载于:https://www.cnblogs.com/xiaoyoucai/p/7371766.html

52)PHP,加了单例模式的数据库代码相关推荐

  1. 导入excel表格到数据库、导入excel表格到数据库代码、根据excel表格路径将数据导入到数据库、验证要导入的excel表格数据、根据路径获取MultipartFile、FileItem文件

    导入excel表格到数据库.根据路径导入excel表格到数据库代码.根据excel表格路径将数据导入到数据库.验证要导入的excel表格数据.根据路径获取MultipartFile.FileItem文 ...

  2. android studio 自动生成sql语句,Android Studio Plugin 插件开发教程(三) —— 制作一个自动生成数据库代码的插件...

    项目源码 系列教程 插件介绍 本篇实战撸个自动生成安卓Sqlite数据库代码的插件,先演示下最终效果 db文件夹下的都是插件自动生成的,而MainActivity里面的代码是我提前写好的,用于实验插件 ...

  3. 分享下自己写的一个微信小程序请求远程数据加载到页面的代码

    分享下自己写的一个微信小程序请求远程数据加载到页面的代码 1  思路整理 就是页面加载完毕的时候  请求远程接口,然后把数据赋值给页面的变量 ,然后列表循环 2 js相关代码  我是改的 onload ...

  4. java自动生成数据库代码

    自从学习计算机以来,学习了很多知识,都是从网上学习的,特别感谢网络,经常自比网络的boy, 现在把我过去做的工具共享出来,希望给大家的工作与学习带来帮助. webtool自动生成数据库代码,支持mys ...

  5. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?

    php操作mysql的增删改查方法:1.插入语句[insert into 数据表名(字段1,字段2,....) values("值1","值2",..)]:2. ...

  6. 加载顺序_JAVA类代码块和属性的加载顺序问题,不要以为静态块始终最先执行了!...

    类代码块和属性的加载顺序问题,不要以为静态块始终最先执行了! 我们知道在一个类中,类的加载顺序为 静态代码块-->普通代码块-->构造代码块,感觉静态块始终是最先初始化的,其实并不是,下面 ...

  7. flash as3 android air 插入视频,FLASH加载外部影片as3代码

    FLASH加载外部影片as3代码 作者:小龙博客 2010年01月7日 没有评论 分类:AS3 学习 flash var loader:Loader=new Loader(); loader.load ...

  8. 【OS学习笔记】四十 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务二代码

    本文是以下几篇文章对应的微型动态加载的用户程序/任务二代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十 ...

  9. 【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码

    本文是以下几篇文章对应的动态加载的用户程序/任务一代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 ...

最新文章

  1. nagios自定义监控API插件
  2. 要看懂MATLAB的Help需要积累的英文词汇!
  3. java程序向mysql插入中文变问号
  4. PHP正则贪婪/懒惰匹配模式
  5. php pdo mysql query_PHP+MYSQL中使用PDO的query方法
  6. linux ntp时间同步
  7. 现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论
  8. Linux su和sudo命令的区别,并获得root权限
  9. jqGrid 操作一些总结(二)
  10. 税控盘开票助手Excel导入或ERP导入开票明细接口使用说明(使用手册)
  11. 《游戏学习》| html5 飞翔的小鸟 小游戏代码示例
  12. UEFI开发,记录第一场胜利——调用一个自己编写的protocol
  13. Mysql全文索引解析
  14. 域名解析邮箱服务器地址,邮件域名设置解析
  15. 语音增强——DNN(深度神经网络)频谱映射
  16. 用python画卡通人物的画法_教你绘制扁平化风格的卡通人物肖像
  17. 【Python数据分析之pandas01】两个常用的数据结构
  18. vmware各个版本 安装 mac osx 10.11终级权威教程,踩了所有坑
  19. 深信服软件测试实习面经
  20. 实战 Java 第12天:开发商品点赞接口

热门文章

  1. 快过年了,用JS让你的网页放烟花吧
  2. 软测经典面试题(一)
  3. VScode编辑器设置中文界面教程
  4. 一个非科班大学生的四年,到秋招收获了腾讯和字节的offer
  5. mvd没什么每次参数双都多一个逗号_必看!PostgreSQL参数优化
  6. c语言怎样计算栈的长度,请问,用c语言做一个计算器 包括+-*/()的运算 用栈 该怎么做...
  7. Mongoose介绍和入门​​
  8. linux shell 批量清空,shell脚本批量删除docker镜像
  9. python单向循环链表_python实现单向循环链表 -- 详细思路分析
  10. 背包问题(nyoj106)