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中的CMS的涵义
Mar 11 PHP
PHP学习 运算符与运算符优先级
Jun 15 PHP
phpMyadmin 用户权限中英对照
Apr 02 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
php 代码优化之经典示例
Mar 24 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
Nov 07 PHP
PHP实现事件机制的方法
Jul 10 PHP
php简单实现数组分页的方法
Apr 30 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
PHP计算近1年的所有月份
Mar 13 PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 PHP
PHP封装的完整分页类示例
Aug 21 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
php5新改动之短标记启用方法
2008/09/11 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
详解python中的文件与目录操作
2017/07/11 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
Python中常用信号signal类型实例
2018/01/25 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
Python变量类型知识点总结
2019/02/18 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
Python新手学习函数默认参数设置
2020/06/03 Python
python3实现飞机大战
2020/11/29 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
学生安全责任书模板
2014/07/25 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
综合素质自我评价评语
2015/03/06 职场文书
八年级语文教学反思
2016/03/03 职场文书
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python