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 相关文章推荐
聊天室php&amp;mysql(一)
Oct 09 PHP
谈谈新手如何学习PHP
Dec 23 PHP
PHP 引用文件技巧
Mar 02 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
php操作csv文件代码实例汇总
Sep 22 PHP
PHP清除字符串中所有无用标签的方法
Dec 01 PHP
CentOS 上搭建 PHP7 开发测试环境
Feb 26 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
php email邮箱正则
2008/10/08 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
python如何发布自已pip项目的方法步骤
2018/10/09 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
办公文员的工作岗位职责
2013/11/12 职场文书
计算机个人求职信范例
2014/01/24 职场文书
文明礼仪标语
2014/06/13 职场文书
民族学专业求职信
2014/07/28 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js