PHP访问数据库配置通用方法
提取一种对数据库配置的通用方式
目的是通过通用类访问配置文件的方式,提供对数据库连接的动态获取和设置,使开发时和生产应用时都能够提供灵活的、简化的、解耦的操作方式。比如在配置文件中配置好两套数据库访问内容,一套测试库访问地址,一套生产库访问,在需要获取连接信息时,只要填入符合的参数即可
结构
- 工厂模式,传参,返回结果;
- 成功返回 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
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访问数据库配置通用方法的更多相关文章
- postgresql修改配置生效方法
对于配置服务器,,太多时候我们在Linux中做的操作是,配置*.conf文件,然后重启服务.而很多服务都具有reload功能,而但是具体到某个配置,有时候直接说出需不需要重启服务而使得配置生效,这并不 ...
- postgresql 修改配置生效方法
对于配置服务器,,太多时候我们在Linux中做的操作是,配置*.conf文件,然后重启服务.而很多服务都具有reload功能,而但是具体到某个配置,有时候直接说出需不需要重启服务而使得配置生效,这并不 ...
- JDBC工具类 访问数据库 增删改查CRUD的通用方法
1 package com.zmh.util; 2 3 import java.sql.*; 4 import java.util.ArrayList; 5 import java.util.Hash ...
- 针对SQLServer数据库的通用访问类
Web.config中代码 <configuration> <connectionStrings> <add name="connString" co ...
- 通过Proxool配置访问数据库的要点
proxool 配置的时候有Proxool.properties 或者 Proxool.xml 两种方式初始化. 我的配置环境是 myEclipse10+tomcat6.0 + mysql5.0 . ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- 网站开发进阶(一)Tomcat域名或IP地址访问方式配置方法
Tomcat域名或IP地址访问方式配置方法 1.配置www.***.com域名方式访问 在Tomcat下面配置域名(如:www.***.com)的时候,同时又不希望客户通过我们网站的IP或者域名访问到 ...
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 ...
- C# 通用数据库配置界面,微软原生DLL重整合
C# 通用数据库配置界面,微软原生DLL重整合 自己整合了 微软自带的数据连接配置界面对话库 Microsoft.Data.ConnectionUI.Dialog.dll 微软自带的数据连接配 ...
随机推荐
- [译] NSScanner:一个陌生的条件判断利器!
NSScanner官方文档 NSScanner类是一个类簇的抽象父类,该类簇为一个从NSString对象扫描值的对象提供了程序接口. NSScanner对象把NSString 对象的的字符解释和转化成 ...
- 【一天一道LeetCode】#5 Longest Palindromic Substring
一天一道LeetCode系列 (一)题目 Given a string S, find the longest palindromic substring in S. You may assume t ...
- JavaScript单线程的疑问与解答
问: JavaScript是单线程的,有任务队列,比如使用setTimeou(func,secs)来在secs毫秒后向任务队列添加func.但是,setTimeout后面跟一个死循环,那么死循环导致任 ...
- Android性能优化之界面UI篇
1.使用style.color.string.dimen样式来分离xml布局文件,减少代码的重复使用,增加代码复用率,防止hardcode,下面是一个例子: 在定义layout时候,因为每个View或 ...
- OAF 开发TAB页
TAB页 2013年1月17日 21:31 当查询结果列数比较多的时候,往往一页显示不下,在FORM的情况下,我们往往会用Tab页的方法解决.那么在OAF如何制作TAB页呢?下面的教程将介绍如何制作一 ...
- Zip操作的工具类
/** * Copyright 2002-2010 the original author is huanghe. */package com.ucap.web.cm.webapp.util; ...
- FineReport性能调优的一些办法
FineReport性能调优的基本思路,就要对应用服务器的内存大小进行合理的设置. 一般服务器默认的内存配置都比较小,在较大型的应用项目中,这点内存是不够的,因此需要加工使其调大. 各应用服务器的内存 ...
- Linux input子系统分析
输入输出是用户和产品交互的手段,因此输入驱动开发在Linux驱动开发中很常见.同时,input子系统的分层架构思想在Linux驱动设计中极具代表性和先进性,因此对Linux input子系统进行深入分 ...
- obj-c编程16:键值编码(KVC)
我们可以借助obj-c中的键值编码(以后简称KVC,Key-Value Coding)来存取类的属性,通过指定所要访问的属性名字符串标示符,可以使用存取器方法来获取或设置类的属性.下面的例子,借助于K ...
- 简单的Java逻辑小代码(打擂台,冒泡排序,水仙花数,回文数,递归)
1.打擂台 简单的小代码,打擂台.纪念下过去,祝福下新人. public static void main(String[] args){ int[] ld = {1,4,2,10,8,9,5}; i ...