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通过session id 实现session共享和登录验证的代码
Jun 03 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
php常量详细解析
Oct 27 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
PHP生成图片缩略图类示例
Jan 12 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
PHP实现基于3DES算法加密解密字符串示例
Aug 24 PHP
详解Go与PHP的语法对比
May 29 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
用PHP实现小型站点广告管理
2006/10/09 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
JavaScript实现京东快递单号查询
2020/11/30 Javascript
Python里隐藏的“禅”
2014/06/16 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
公益活动策划方案
2014/01/09 职场文书
采购助理岗位职责
2014/02/16 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
Java Spring读取和存储详细操作
2022/08/05 Java/Android