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 相关文章推荐
将数字格式的计算结果转为汉字格式
Oct 09 PHP
mysql建立外键
Nov 25 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
php的hash算法介绍
Feb 13 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 PHP
php实现的常见排序算法汇总
Sep 08 PHP
PHP实现的简单网络硬盘
Jul 29 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
Lumen timezone 时区设置方法(慢了8个小时)
Jan 20 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 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
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
盘点提高 Python 代码效率的方法
2014/07/03 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
python列表list保留顺序去重的实例
2018/12/14 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
电脑租赁公司创业计划书
2014/01/08 职场文书
渡河少年教学反思
2014/02/12 职场文书
股东协议书范本
2014/04/14 职场文书
维修工先进事迹
2014/05/29 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
亲戚关系证明
2015/06/24 职场文书
Python jiaba库的使用详解
2021/11/23 Python
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python