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 相关文章推荐
1.PHP简介
Oct 09 PHP
php str_pad 函数使用详解
Jan 13 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
php常用数组函数实例小结
Dec 29 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
PHP中如何使用Redis接管文件存储Session详解
Nov 28 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和editplus正则表达式去除空白行
2015/04/17 PHP
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
nodejs简单抓包工具使用详解
2019/08/23 NodeJs
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
八年级美术教学反思
2014/02/02 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
敬老院活动总结
2014/04/28 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
公司总经理岗位职责
2015/04/01 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
家长会开场白和结束语
2015/05/29 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
如何使用flask将模型部署为服务
2021/05/13 Python
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技