PHP 访问数据库配置通用方法(json)


Posted in PHP onMay 20, 2018

提取一种对数据库配置的通用方式

目的是通过通用类访问配置文件的方式,提供对数据库连接的动态获取和设置,使开发时和生产应用时都能够提供灵活的、简化的、解耦的操作方式。比如在配置文件中配置好两套数据库访问内容,一套测试库访问地址,一套生产库访问,在需要获取连接信息时,只要填入符合的参数即可

结构

  • 工厂模式,传参,返回结果;
  • 成功返回 array,否则返回 string 错误信息;
  • 两个文件配合工作,一个是json格式配置文件,负责保存数据库连接内容,另一个是读取类,负责读取和检索,返回结果;

使用方式

  • 定义配置文件为db-config.json,内容为数据库连接信息;
  • 读取类db-config.php提供公共静态访问,供上层接口调用;
  • 上层接口使用接口方法$db_conf = DbConf::Conf("debug");检索debug为标志的数据库连接信息。如有 $db_conf 为数组格式;

见代码

{
 "debug": {
  "db_host": "",
  "db_name": "",
  "db_user": "",
  "db_password": ""
 }
}

php类

<?php
class DbConf{
 public static function Conf( $conf_name ){
  
  if(empty($conf_name)){
   die("Illegal parameter");
  }

  $from = "localhost"; // allow legal host only
  if(!isset($_SERVER['HTTP_HOST']) || $_SERVER['HTTP_HOST']!=$from){
   die("Unauthorized access");
  }

  $json_config = file_get_contents('db-config.json');

  $json_data = json_decode($json_config, true);

  if( array_key_exists($conf_name, $json_data)){
   return $json_data[$conf_name];
  }else{
   return "Not Found";
  }
 }
}

这篇文章就介绍到这了,需要的朋友可以参考一下

PHP 相关文章推荐
对Session和Cookie的区分与解释
Mar 16 PHP
ecshop 订单确认中显示省市地址信息的方法
Mar 15 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
php的$_FILES的临时储存文件与回收机制实测过程
Jul 12 PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
zf框架db类的分页示例分享
Mar 14 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
PHP通过API获取手机号码归属地
May 28 PHP
php 可变函数使用小结
Jun 12 PHP
php使用pecl方式安装扩展操作示例
Aug 12 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 #PHP
windows环境下使用Composer安装ThinkPHP5
May 18 #PHP
PHP实现登录验证码校验功能
May 17 #PHP
php识别翻转iphone拍摄的颠倒图片
May 17 #PHP
php通过各种函数判断0和空
Jul 04 #PHP
PHP手机短信验证码实现流程详解
May 17 #PHP
PHP实现多图上传和单图上传功能
May 17 #PHP
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
关于Vue组件库开发详析
2018/07/01 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
八年级美术教学反思
2014/02/02 职场文书
创意婚礼策划方案
2014/05/18 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
python opencv通过4坐标剪裁图片
2021/06/05 Python