ThinkPHP连接数据库及主从数据库的设置教程


Posted in PHP onAugust 22, 2014

本文较为详细的讲述了ThinkPHP连接数据库及主从数据库的设置方法,在ThinkPHP项目开发中非常实用。具体实现方法如下:

一、项目根目录上建立config.php

代码如下所示:

<?php
 if(!defined('THINK_PATH')) exit();
 return array(
  'DB_TYPE'    =>  'mysql',// 数据库类型  
  'DB_HOST'    =>  'localhost',// 主机
  'DB_NAME'    =>  'aoli',// 数据库名称
  'DB_USER'    =>  'root',// 数据库用户名
  'DB_PWD'     =>  '',// 数据库密码
  'DB_PREFIX'   =>  '',// 数据表前缀
  'DB_CHARSET'   =>  'utf8',// 网站编码
  'DB_PORT'    =>  '3306',// 数据库端口
 );
?>

二、设置项目配置文件

\Home\Conf\config.php文件代码如下:

<?php
 $arr1=array{
  'URL_MODEL'=>2, //pathinfo访问模式
 };
 $arr2=include './config.php';
 return array_merge($arr1,$arr2); //数组整合
?>

\Admin\Conf\config.php文件代码如下:

<?php
 $arr1=array{
  'URL_MODEL'=>1, //普通访问模式 get方式
 };
 $arr2=include './config.php';
 return array_merge($arr1,$arr2); //数组整合
?>

三、主从数据库设置

该设置比较适合高并发,高负载的大型网站
读者可以到\ThinkPHP\Common\convention.php中查看默认的系统常量设置

config.php文件设置如下:

<?php
  return array(
  //'配置项'=>'配置值'
  //后台
  'URL_MODE'=>0,
  'DB_TYPE'=>'mysql',
  'DB_HOST'=>'localhost,192.168.1.2',//两台数据库服务器
  'DB_PORT'=>'3306',
  'DB_NAME'=>'thinkphptest',//如果数据库名相同,不用定义多个,如果不相同与服务器依次对应
  'DB_USER'=>'root',
  'DB_PWD'=>'password',
  //表前缀
  'DB_PREFIX'=>'think_',
  //接下来配置主从数据库
  'DB_DEPLOY_TYPE'=>1,//开启分布式数据库
  'DB_RW_SEPARATE'=>ture,//读写分离,默认第一台服务器为写入服务器,其它的只读取不写入
  );
?>

在某个action中读取数据库文件参数:

$hh=C('DB_HOST'); //C可以读取配置文件中的值
  $pp=C('DB_PREFIX');
  $this->assain('h',$hh);
  $this->assain('p',$pp);
  $this->display();

这个action下的tpl:

数据库服务器地址:{$h}
  数据库表前缀:{$p}

希望本文所述方法对大家的ThinkPHP程序设计能有所帮助。

PHP 相关文章推荐
PHP4引用文件语句的对比
Oct 09 PHP
支持oicq头像的留言簿(一)
Oct 09 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
比较strtr, str_replace和preg_replace三个函数的效率
Jun 26 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
php中session过期时间设置及session回收机制介绍
May 05 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
初识Laravel
Oct 30 PHP
php上传图片类及用法示例
May 11 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
php修改word的实例方法
Nov 17 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 #PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 #PHP
ThinkPHP基本的增删查改操作实例教程
Aug 22 #PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 #PHP
ThinkPHP验证码和分页实例教程
Aug 22 #PHP
ThinkPHP文件上传实例教程
Aug 22 #PHP
ThinkPHP中ajax使用实例教程
Aug 22 #PHP
You might like
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
canvas的神奇用法
2017/02/03 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
Python采用raw_input读取输入值的方法
2014/08/18 Python
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python中的类与对象之描述符详解
2015/03/27 Python
python中threading超线程用法实例分析
2015/05/16 Python
python:print格式化输出到文件的实例
2018/05/14 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
行政人员工作职责
2013/12/05 职场文书
幼儿教师考核制度
2014/01/25 职场文书
学生安全教育材料
2014/02/14 职场文书
询价采购方案
2014/06/09 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
户籍证明书标准模板
2014/09/10 职场文书
语文教师个人工作总结
2015/02/06 职场文书
请假条应该怎么写?
2019/06/24 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
解读Vue组件注册方式
2021/05/15 Vue.js
python cv2图像质量压缩的算法示例
2021/06/04 Python