# 一、数据库配置文件
我们可以在 <project>/com/option 目录中 default.php 或则 db.php 定义数据库连接。
# 二、数据库默认配置文件定义
~~~
// 数据库默认连接参数
'db_type' => 'mysql', // 数据库类型
'db_host' => 'localhost', // 数据库地址
'db_user' => 'root', // 数据库用户名
'db_password' => '', // 数据库密码
'db_prefix' => '', // 数据库表前缀
'db_char' => 'utf8', // 数据库编码
'db_name' => '', // 数据库名字
'db_schema' => '', // 数据库SCHEMA
'db_port' => 3306, // 端口
'db_dsn' => '', // [优先解析]数据 dsn 解析 mysql://username:password@localhost:3306/dbname
'db_params' => [ ], // 数据库连接参数
'db_persistent' => FALSE, // 数据库是否支持长连接
'db_distributed' => FALSE, // 是否采用分布式
'db_rw_separate' => FALSE, // 数据库读写是否分离[注意:主从式有效]
'db_master' => [], // 主服务器
'db_slave' => [], // 副服务器
// 数据库缓存
'db_cache' => FALSE, // 数据库查询是否缓存
'db_meta_cached' => TRUE, // 数据库元是否缓存
~~~
# 三、数据库读写分离
QueryPHP 允许用户把一个主数据库作为写入、更新以及删除,例外的附属服务区作为只读数据库。
通过下面这个例子,我们来学习如何配置数据库读写连接的分离:
~~~
'db_type' => 'mysql', // 数据库类型
'db_host' => 'localhost', // 数据库地址
'db_user' => 'root', // 数据库用户名
'db_password' => '', // 数据库密码
'db_prefix' => 'q_', // 数据库表前缀
'db_char' => 'utf8', // 数据库编码
'db_name' => 'demo', // 数据库名字
'db_port' => 3306, // 端口
'db_master' => [ ],
'db_slave' => [
[
'db_host' => '192.168.1.2' ,
'db_port' => 3306
],
[
'db_host' => '192.168.1.3' ,
'db_port' => 3307
]
],
'db_distributed' => true, // 是否采用分布式
'db_rw_separate' => true // 数据库读写是否分离[注意:主从式有效]
~~~
说明,db_master 为主服务,db_slave 为附属服务器,其它选项为公共选项公用,如果不同则可以自行在服务器中添加覆盖。
# 四、使用多数据库连接
你可以在配置文件预先定义好连接,例如:
~~~
'my_db' = [
'db_type' => 'mysql', // 数据库类型
'db_host' => 'localhost', // 数据库地址
'db_user' => 'root', // 数据库用户名
'db_password' => '', // 数据库密码
'db_prefix' => 'q_', // 数据库表前缀
'db_char' => 'utf8', // 数据库编码
'db_name' => 'demo', // 数据库名字
'db_port' => 3306, // 端口
'db_master' => [ ],
]
~~~
使用参数名字直接连接
~~~
$arrObj = database::connect( 'my_db' )->select( 'select * from q_test where id = ?', 1);
~~~
访问原始的 Pdo 实例:
~~~
$objPdo = database::connect()->getPdo( );
~~~
- 关于 QueryPHP
- 获取 QueryPHP
- 环境要求
- 许可协议 Free
- 执行流程 MVC
- 命名规范 $sName
- 目录结构 DIR
- 单一入口 index.php
- 响应客户端请求 URL
- 命名空间与自动载入 Autoload
- 路由
- 路由导入
- 批量导入
- 参数正则
- 分组定义
- 路由绑定
- 路由域名
- 分层控制器
- 默认和初始化APP
- 默认控制器和方法
- url 模式
- url 生成
- url 伪静态
- url 重写
- url 重定向
- 控制器绑定
- 方法器分层
- 控制器 __init
- 控制器方法交互
- 模板引擎语法
- C变量输出 $sName
- C变量支持函数和方法 $sName|trim
- C快捷输出 ~
- C标签简化 Css & Javascript
- C默认值 eq 三元运算符
- C变量运算符 +-
- 变量递增递减 ++--
- C循环数据 list
- N变量赋值 assign
- N循环数据 list
- N循环数据高级版 lists
- C循环数据 while
- N循环数据 while
- C循环数据 for
- N循环数据 for
- C条件判断 if
- N条件判断 if
- 标签嵌套无限层级
- N循环流程 break & continue
- N使用 PHP 代码
- N包含子模板 include
- J模板引擎 intro
- J条件判断 if
- J循环数据 each
- J变量 & 表达式
- J变量支持函数和方法 hello|test
- J默认值 eq 三元运算符
- J框架前端组件 jquery.queryphp.js
- J前端 CSS 规范
- J前端 JS 规范
- 保护标签自身 tagself
- 数据库
- 数据库配置
- 执行原生 sql 语句
- 数据库事务
- 数据库构造器 prefix
- 数据库构造器 table
- 数据库构造器 forceIndex
- 数据库构造器 where
- 数据库构造器 bind
- 数据库构造器 join
- 数据库构造器 union
- 数据库构造器 orderBy
- 数据库构造器 groupBy
- 数据库构造器 having
- 数据库构造器 distinct
- 数据库构造器 aggregate
- 数据库构造器 limit
- 数据库构造器 forUpdate
- 数据库构造器 columns
- 数据库构造器 reset
- 数据库集合查询
- 数据库查询数据 get
- 数据库查询多条数据 getAll
- 数据库查询单条数据 getOne
- 数据库查询聚合查询 aggregate
- 数据库写入数据 insert
- 数据库写入数据 insertAll
- 配置
- 配置格式
- 惯性配置
- 配置文件
- 读取配置
- 设置配置
- 删除配置
- 日志
- 日志配置参数
- 日志路径
- 日志过滤器
- 日志处理器
- 缓存
- 缓存配置参数
- 缓存路径
- 缓存指定时间
- COOKIE
- COOKIE 配置参数
- 开发调试
- 页面 trace