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 设计模式之 工厂模式
Dec 19 PHP
支持数组的ADDSLASHES的php函数
Feb 16 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 PHP
php生成随机颜色方法汇总
Dec 03 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 PHP
php面向对象程序设计中self与static的区别分析
May 21 PHP
php用wangeditor3实现图片上传功能
Aug 22 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
10条PHP编程习惯助你找工作
2008/09/29 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
smarty模板数学运算示例
2016/12/11 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
Python程序设计入门(2)变量类型简介
2014/06/16 Python
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
八大排序算法的Python实现
2021/01/28 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
公关活动策划方案
2014/05/25 职场文书
迎新晚会策划方案
2014/06/13 职场文书
写给女朋友的保证书
2015/05/09 职场文书
社区安全温馨提示语
2015/07/14 职场文书
七年级思品教学反思
2016/02/20 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS