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 相关文章推荐
set_include_path在win和linux下的区别
Jan 10 PHP
中英文字符串翻转函数
Dec 09 PHP
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 PHP
使用session判断用户登录用户权限(超简单)
Jun 08 PHP
php防止sql注入代码实例
Dec 18 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
thinkphp缓存技术详解
Dec 09 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
PHP的伪随机数与真随机数详解
May 27 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
Yii框架连接mongodb数据库的代码
Jul 27 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 动态随机生成验证码类代码
2010/04/09 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
javascript 函数式编程
2007/08/16 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
js倒计时小程序
2013/11/05 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
Javascript非构造函数的继承
2015/04/27 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
python如何运行js语句
2020/09/09 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
应届毕业生求职信范例分享
2013/12/17 职场文书
白酒市场开发计划书
2014/01/09 职场文书
爱护公物标语
2014/06/24 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
如何用python清洗文件中的数据
2021/06/18 Python
基于Python实现流星雨效果的绘制
2022/03/18 Python
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers