PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [1] 单例模式连接数据库
2023-09-11 14:17:03 时间
单例模式
单例模式三大原则:
① 构造函数需要标记为非 public (防止外部使用 new 操作符创建对象),单例类不能在其他类中实例化,只能被自身实例化;
② 拥有一个保存类的实例的静态成员变量 $_instance
③ 拥有一个访问这个实例的公共的静态方法
单例模式(参见 PHP 单例模式代码片段):
<?php /* * 单例模式 */ class DB{ static private $_instance; private function __construct(){ } static public function getInstance(){ if(!self::$_instance instanceof self){ self::$_instance = new self(); } return self::$_instance; } }
单例模式连接数据库:
1 <?php 2 /* 3 * 单例模式连接数据库 4 */ 5 class DB{ 6 static private $_instance; //非public的类的实例的静态成员变量 7 static private $_connectSource; //连接数据库返回的资源句柄 8 private $_dbConfig = array( 9 'host'=>'127.0.0.1', 10 'username'=>'root', 11 'pwd'=>'', 12 'database'=>'chat' 13 ); 14 15 private function __construct(){ //非public 的构造函数 16 } 17 18 static public function getInstance(){ //访问实例的公共静态方法 19 if(!self::$_instance instanceof self){ 20 self::$_instance = new self(); 21 } 22 return self::$_instance; 23 } 24 25 public function connect(){ 26 if(!self::$_connectSource){ 27 //连接mysql服务 28 self::$_connectSource = mysql_connect($this->_dbConfig['host'],$this->_dbConfig['username'],$this->_dbConfig['pwd']); 29 if(!self::$_connectSource){ 30 die('mysql connect error'.mysql_error()); 31 } 32 //选择数据库 33 mysql_select_db($this->_dbConfig['database'],self::$_connectSource); 34 //设置字符集 35 mysql_query('set names "UTF8"',self::$_connectSource); 36 } 37 return self::$_connectSource; //返回资源 38 } 39 } 40 41 $connect = DB::getInstance()->connect(); 42 var_dump($connect); 43 44 $sql = 'select * from messages'; 45 $res = mysql_query($sql,$connect); 46 $num = mysql_num_rows($res); 47 var_dump($num);
页面输出:
resource(3, mysql link)
int 2
相关文章
- App.Config Transformation for projects which are not Web Projects in Visual Studio? app.debug.config
- Google Earth Engine APP(GEE) ——在GEE app发布过程中会出现的一些小bug
- Google Earth Engine APP(GEE) ——ForestAz APP- 使用谷歌地球引擎和哨兵数据进行亚速尔群岛(葡萄牙)的森林监测
- Google Earth Engine APP——在线计算23类植被指数app代码
- Google Earth Engine(GEE)APP——一个监测影像各波段的DN值的app
- Google Earth Engine(GEE)APP——Global Forest Change app全球森林监测
- RadioGroup+ViewPager +Fragment 制作APP主界面底部导航和左右滑动
- uni-app - 禁用 APP 横屏旋转(用户操作行为)
- uni-app - 文本展开 / 收起折叠功能,支持自定义样式(当文本内容超出规定行数后,展开收起折叠的功能)兼容 H5 / App / 小程序且易用更容易修改的插件组件源码,超详细的示例代码及注释
- uni-app - 去除隐藏页面右侧垂直滚动条(App/全平台)
- 删除setup app 激活A7 IOS
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [3] 首页 APP 接口开发方案 ② 读取缓存方式
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [2] 首页 APP 接口开发方案 ① 读取数据库方式
- HTML5-IOS WEB APP应用程序(IOS META)
- SwiftUI 学习方法之 04 我是真正的0基础,现在还没开始写App就已经很害怕了
- 教你动手做一个 iOS 越狱 app
- IIS uni-app发布H5跨域配置
- IOS APP上架App Store及提交审核详细教程
- App开放接口api安全性—Token签名sign的设计与实现
- uni-app封装Request方法