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 相关文章推荐
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
Email+URL的判断和自动转换函数
Oct 09 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
php连接数据库代码应用分析
May 29 PHP
基于xcache的配置与使用详解
Jun 18 PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 PHP
php简单实现数组分页的方法
Apr 30 PHP
php操作access数据库的方法详解
Feb 22 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 PHP
PHP时间相关常用函数用法示例
Jun 03 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
详解Angular cli配置过程记录
2019/11/07 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
简单实现Python爬取网络图片
2018/04/01 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
大学生应聘推荐信范文
2013/11/19 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
家电业务员岗位职责
2014/03/10 职场文书
热门专业求职信
2014/05/24 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
乐山大佛导游词
2015/02/02 职场文书
财务会计求职信范文
2015/03/20 职场文书
纪委立案决定书
2015/06/24 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android