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读取30天之内的根据算法排序的代码
Apr 06 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
php&amp;mysql 日期操作小记
Feb 27 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
详谈PHP程序Laravel 5框架的优化技巧
Jul 18 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 26 PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 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编写大型网站问题集
2007/03/06 PHP
php读取html并截取字符串的简单代码
2009/11/30 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
php提高网站效率的技巧
2015/09/29 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
js验证账户名是否重复
2020/05/26 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python微信公众号开发平台
2018/01/25 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
params有什么用
2016/03/01 面试题
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
不尊敬老师的检讨书
2014/12/21 职场文书
表扬稿格式范文
2015/01/16 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
大学生军训感言
2015/08/01 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书