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程序之die调试法 快速解决错误
Sep 17 PHP
php递归实现无限分类生成下拉列表的函数
Aug 08 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
php实现获取及设置用户访问页面语言类
Sep 24 PHP
php实现的通用图片处理类
Mar 24 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
php中使用websocket详解
Sep 23 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 PHP
laravel 获取当前url的别名方法
Oct 11 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
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
php二维数组转成字符串示例
2014/02/17 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
Python中的pprint折腾记
2015/01/21 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
python实现中文输出的两种方法
2015/05/09 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
2016大学军训心得体会
2016/01/11 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python