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 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 PHP
PHP中判断变量为空的几种方法分享
Aug 26 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
PHP实现过滤掉非汉字字符只保留中文字符
Jun 04 PHP
php array_values 返回数组的值实例详解
Nov 17 PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
php定期拉取数据对比方法实例
Sep 22 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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
用PHP实现图象锐化代码
2007/06/14 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
brook javascript框架介绍
2011/10/10 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
Vue实现简单分页器
2018/12/29 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
详解Django配置优化方法
2019/11/18 Python
python分布式计算dispy的使用详解
2019/12/22 Python
python3 实现调用串口功能
2019/12/26 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
Python ini文件常用操作方法解析
2020/04/26 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
音乐教学反思
2014/02/02 职场文书
期末学生评语大全
2014/04/24 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
爱的教育观后感
2015/06/17 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书