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
php 广告调用类代码(支持Flash调用)
Aug 11 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
yii2 resetful 授权验证详解
May 18 PHP
php给数组赋值的实例方法
Sep 26 PHP
php获取微信openid方法总结
Oct 10 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 PHP
php操作redis命令及代码实例大全
Nov 19 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精确的统计在线人数的方法
2015/10/21 PHP
php数据序列化测试实例详解
2017/08/12 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
PHP 图片处理
2020/09/16 PHP
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python线程池如何使用
2020/05/28 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
申请任职学生会干部自荐书范文
2014/02/13 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书