ThinkPHP3.2.3数据库设置新特性_模板无忧
ThinkPHP3.2.3数据库设置新特性_PHP教程
推荐:ThinkPHP 3.2发布了挺长时间了,这里也总结下这次ThinkPHP 3.2到底发生了哪些变化,方便程序员们进行开发。 前言 ThinkPHP 3.2 基于 ThinkPHP 3.1 的基础上有许多的变化,我觉得这个版本应该设立为 ThinkPHP 4.0 而不是什么 3.2。如果你在使用 ThinkPHP 3.1 请勿贸然迁&前篇文章,我们总结了下Think3.2中所产生的新变化,本文我们来详细看下关于数据库这块有哪些新特性,非常细致,有需要的小伙伴参考下。
ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用。
首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括:
/* 数据库设置 */
// 数据库类型
服务器地址
'DB_PREFIX'
// 数据库表前缀
'DB_PARAMS'
array(), // 数据库连接参数
'DB_DEBUG'
TRUE, // 数据库调试模式
开启后可以记录SQL日志
使用数据库Lite模式
'DB_FIELDS_CACHE'
启用字段缓存
'DB_CHARSET'
数据库编码默认采用utf8
'DB_DEPLOY_TYPE'
0, // 数据库部署方式:0 集中式(单一服务器),1
分布式(主从服务器)
'DB_RW_SEPARATE'
// 数据库读写是否分离
主从式有效
'DB_MASTER_NUM'
1, // 读写分离后
主服务器数量
'DB_SL***E_NO'
'', // 指定从服务器序号
相对3.2.2版本来说,取消了如下设置参数:
'DB_FIELDTYPE_CHECK' //
3.2.3强制进行字段类型检测了
'DB_SQL_BUILD_CACHE' //
3.2.3取消了SQL创建缓存
'DB_SQL_BUILD_QUEUE' //
3.2.3取消了SQL创建缓存
'DB_SQL_BUILD_LENGTH' // 3.2.3取消了SQL创建缓存
'DB_SQL_LOG' //
由新增的DB_DEBUG参数取代
'DB_BIND_PARAM' // 新版采用PDO 自动参数绑定 无需设置
新增的数据库设置参数包括:
'DB_DEBUG'
//用于开启数据库调试模式,开启后即可记录SQL日志
'DB_LITE' // 是否采用数据库Lite模式连接
开启后只能使用原生SQL查询
3.2.2版本数据库的调试模式和项目的调试模式(由APP_DEBUG常量定义)是绑定的
,3.2.3版本开始数据库的调试模式是独立设置(由DB_DEBUG参数设置)的。
DB_TYPE参数为数据库类型设置,目前支持的驱动包括/sqlite/oracle/pgsql/sqlsrv/firebird(其他的数据库类型需要增加驱动),设置如下:
'DB_TYPE'=&'mysql',
// 不再支持设置为PDO 也不再区分mysql和mysqli
数据库的连接信息,主要包括下面参数:
'', // 服务器地址
采用IP地址
留空则取默认端口
'DB_CHARSET'
// 数据库编码
以上设置参数会在实例化PDO的时候自动转换为PDO的连接参数传入。
DB_DSN参数一般无需设置,系统的数据库驱动会进行默认设置,如果需要调整,请遵循PDO的相关数据库连接的DSN设置进行设置。
DB_PARAMS用于设置数据库的连接参数,会传入PDO实例化的第四个参数。
下面是一个典型的数据库全局设置:
// 数据库类型
'192.168.1.10', //
服务器地址
'DB_PREFIX'
数据库表前缀
'DB_CHARSET'
// 数据库编码
'DB_DEBUG'
TRUE, // 数据库调试模式 开启后可以记录SQL日志
如果在模型类中设置单独的数据库连接信息connection属性,可以使用下面的数组或者字符串方式:
//在模型里单独设置数据库连接信息
use Think\M
class UserModel extends
// 采用数组方式定义
otected $connection = array(
=& 'mysql',
=& 'root',
=& '1234',
=& '192.168.1.10',
=& '3306',
=& 'thinkphp',
'db_charset' =&
注意:在模型中设置的数据库连接设置参数采用全局配置的小写名。
或者采用字符串方式定义,格式为:
数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
//在模型里单独设置数据库连接信息
use Think\M
class UserModel extends Model{
使用字符串方式定义
protected $connection =
'mysql://root:.1.10:3306/thinkphp#utf8';
也可以通过配置文件设置,例如:
//数据库配置1
'DB_CONFIG1' =&
=& 'mysql',
=& 'root',
=& '1234',
=& '192.168.1.10',
=& '3306',
=& 'thinkphp',
'db_charset'=&
//数据库配置2
'DB_CONFIG2' =&
'mysql://root:.1.10:3306/thinkphp#utf8';
然后在模型里面定义:
分享:这篇文章主要介绍了一款国产MVC框架thinkPHP,这里讲诉的是thinkphp的***与配置,以及一个简单实例,有需要的小伙伴可以参考下。 国产框架thinkPHP,是一款MVC框架,这个框架最初模拟J***A的struts框架,使用单一入口文件模拟J***A的过滤器,使用action来模拟STRUTS的控
&&&&&&&&&&&&
相关PHP教程:
编程教程搜索
PHP教程推荐
猜你也喜欢看这些&Workerman整合Redis和ThinkPHP3.2.3
秒后自动跳转到登录页
(奖励5下载豆)
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/***等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
RHCSA7/RHCE7红帽官
鸟哥的Linux私房菜基
Linux常用命令全集
鸟哥的linux私房菜基
SAN存储交换网基础培
vSphere存储性能优化
戴尔服务器新品来袭
Workerman整合Redis和ThinkPHP3.2.3
上传时间:
技术分类:
资源评价:
(8位用户参与评价)
已被下载&133&次
/** * @author HappyLiu&& *
*/=======程序说明==============================================此程序由workerman-chat改写;workerman版本:3.0.7ThinkPHP版本:3.2.3=======服务器环境============================================1.能够运行workerman框架2.支持php-cli模式下的redis扩展========***说明=============================================上传到linux服务器WEB目录,可以通过URL地址访...
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
下载1440次
下载1359次
下载2324次
下载2212次
下载1438次
下载1139次
下载1265次
下载2075次
相关专题推荐
磁盘阵列简称RAID,有“价格便宜且多
网络存储系统的搭建能够为我们带来极
VMware是提供一套虚拟机解决方案的软
从开发、测试、生产三部曲这样的运作
本专题为vmware中文视频教程,在线视
本专题介绍了weblogic服务器在企业应
Vmware View是Vmware的桌面和应用虚拟
vSphere不是一个单独的产品,它由一系
本专题全面深入讲解Windows Server 2
本专题收集了高俊峰老师讲解的系统集
IBM TSM 备份软件实战教学视频,包含
菜鸟腾飞安全网VIP_精通VMware虚拟机
2013年传智播客WebService视频教程,
Active Directory 实操作参考系列,本
服务器虚拟化技术以VMware公司的vSph
LoadRunner,是一种预测系统行为和性
本周下载热点
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理顶尖 ThinkPHP 培训 视频 教程 14.ThinkPHP3.1.3使用视频教程--自定义SESSION处理DB驱动与添加Redis处理驱动_土豆_高清视频在线观看ThinkPHP+Redis 缓存类 | 尘缘的博客
为了让ThinkPHP支持Redis,写了这个Redis的缓存类,里面只有简单的Get和Set方法,方便在S方法直接使用,复杂的使用方法,可以直接使用phpRedis。
本类要求支持phpRedis***方法:/archives/1001521
在TP项目中的路径
ThinkPATH\Lib\Think\Util\Cache\CacheRedis.class.php
Extend\Driver\Cache\CacheRedis.class.php
配置方法,在ThinkPHP项目配置文件中,添加以下参数:
/* 系统缓存 */
'DATA_CACHE_TYPE'
=& 'Redis',
'REDIS_HOST'
=& '192.168.0.243',
'REDIS_PORT'
'DATA_CACHE_TIME'
上述参数分别表示缓存类型,主机,端口和超时时间。
附件下载: SVN中已经更新
源码如下:
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c)
All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 尘缘 &&
// +----------------------------------------------------------------------
// $Id: CacheRedis.class.php -12 04:12:51Z liu21st $
+-------------------------------------
* CacheRedis缓存驱动类
* 要求***phpredis扩展:/owlient/phpredis
+-------------------------------------
class CacheRedis extends Cache {
+----------------------------------------------------------
* 架构函数
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
public function __construct($options='') {
if ( !extension_loaded('redis') ) {
throw_exception(L('_NOT_SUPPERT_').':redis');
if(empty($options)) {
$options = array (
=& C('REDIS_HOST') ? C('REDIS_HOST') : '127.0.0.1',
=& C('REDIS_PORT') ? C('REDIS_PORT') : 6379,
'timeout' =& C('DATA_CACHE_TIMEOUT') ? C('DATA_CACHE_TIMEOUT') : false,
'persistent' =& false,
=& C('DATA_CACHE_TIME'),
$this-&options =
$func = $options['persistent'] ? 'pconnect' : 'connect';
$this-&handler
$this-&connected = $options['timeout'] === false ?
$this-&handler-&$func($options['host'], $options['port']) :
$this-&handler-&$func($options['host'], $options['port'], $options['timeout']);
+----------------------------------------------------------
* 是否连接
+----------------------------------------------------------
* @access private
+----------------------------------------------------------
* @return boolen
+----------------------------------------------------------
private function isConnected() {
return $this-&
+----------------------------------------------------------
* 读取缓存
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $name 缓存变量名
+----------------------------------------------------------
* @return mixed
+----------------------------------------------------------
public function get($name) {
N('cache_read',1);
return $this-&handler-&get($name);
+----------------------------------------------------------
* 写入缓存
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $name 缓存变量名
* @param mixed $value
* @param integer $expire
有效时间(秒)
+----------------------------------------------------------
* @return boolen
+----------------------------------------------------------
public function set($name, $value, $expire = null) {
N('cache_write',1);
if(is_null($expire)) {
$this-&options['expire'];
if(is_int($expire)) {
$result = $this-&handler-&setex($name, $expire, $value);
$result = $this-&handler-&set($name, $value);
if($result && $this-&options['length']&0) {
// 记录缓存队列
$this-&queue($name);
+----------------------------------------------------------
* 删除缓存
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $name 缓存变量名
+----------------------------------------------------------
* @return boolen
+----------------------------------------------------------
public function rm($name) {
return $this-&handler-&delete($name);
+----------------------------------------------------------
* 清除缓存
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @return boolen
+----------------------------------------------------------
public function clear() {
return $this-&handler-&flushDB();
共享此文章:thinkphp怎么用redis 进行类似数据库的增加数据操作和查询操作
[问题点数:50分]
thinkphp怎么用redis 进行类似数据库的增加数据操作和查询操作
[问题点数:50分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年11月 PHP大版内专家分月排行榜第三2014年6月 PHP大版内专家分月排行榜第三2014年4月 PHP大版内专家分月排行榜第三2014年2月 PHP大版内专家分月排行榜第三2013年11月 PHP大版内专家分月排行榜第三
2016年8月 PHP大版内专家分月排行榜第三2016年5月 PHP大版内专家分月排行榜第三2016年4月 PHP大版内专家分月排行榜第三2015年12月 PHP大版内专家分月排行榜第三2015年9月 PHP大版内专家分月排行榜第三2015年5月 PHP大版内专家分月排行榜第三2014年5月 PHP大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。