站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
ThinkPHP开发指南-模型-高级模型之多数据库连接和切换
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="border:1px solid #000; float:right; text-align:center; padding:6px;"><strong>导航:</strong>[[ThinkPHP开发指南-模型之高级模型|上一页]]</span> <div style="clear:both;"></div> 分布式数据库的配置信息是定义在配置文件里面的,所以一般情况下是无法更改的。另外使用分布式数据库有个不足,就是无法同时连接多个不同类型的[[数据库]]。 *'''多数据库支持''' 如果你的应用需要在特殊的时候连接多个数据库,那么可以尝试使用[[ThinkPHP]]的多数据库连接特性:包括相同类型的数据库和不同类型的数据库。我们首先需要在模型类里面增加需要的数据库连接,'''例如''':我们在UserModel类增加多个数据库连接,首先定义额外的数据库连接信息 '''PHP代码''' <pre> $myConnect1 = array( 'dbms' => 'mysql', 'username' => 'username', 'password' => 'password', 'hostname' => 'localhost', 'hostport' => '3306', 'database' => 'dbname' ); </pre> 或者使用下面的定义 '''PHP代码''' <pre> $myConnect1 = 'mysql://username:passwd@localhost:3306/DbName'; </pre> 定义之后就可以进行动态的增加和切换[[数据库]]了。 '''PHP代码''' <pre> $User = D("User"); // 增加数据库连接 第二个参数表示连接的序号 // 注意内置的数据库连接序号是0,所以额外的数据库连接序号应该从1开始 </pre> '''PHP代码''' <pre> $User->addConnect($myConnect1,1); // 可以同时增加多个数据库连接 myConnect2和myConnect3的定义方式同 </pre> '''PHP代码''' <pre> myConnect1 $User->addConnect($myConnect1,1); $User->addConnect($myConnect2,2); $User->addConnect($myConnect3,3); </pre> 这样在UserModel里面就同时存在了4个数据库(加上项目配置里面定义的)连接。那么我们如何使用这些不同的数据库连接呢?ThinkPHP采用了灵活的切换机制,由应用来控制不同的数据库连接。例如,我们需要在其中一个应用里面用到$myConnect2 这个数据库连接,那么用下面的方法切换即可: '''PHP代码''' <pre> $User->switchConnect(2); </pre> switchConnect方法会智能识别该连接是否是相同类型的连接。如果要切换的数据表名称和当前模型的不一致,可以传入参数: '''PHP代码''' <pre> $User->switchConnect(2, 'Member'); </pre> 这样连接新的数据库后切换到的数据表就成了member表了,当然前缀还是一样的。我们还可以使用addConnect方法添加多个动态数据库连接,只要传入数组参数就可以了,例如: '''PHP代码''' <pre> $myConnect[1] = 'mysql://username:passwd@192.168.1.1:3306/DbName1'; $myConnect[2] = 'mysqli://username:passwd@192.168.1.2:3306/DbName2'; $myConnect[3] = 'mysql://username:passwd@192.168.1.3:3306/DbName3'; $User->addConnect($myConnect); </pre> 如果需要删除之前动态添加的连接,可以使用delConnect方法,例如: '''PHP代码''' <pre> $User->delConnect(2); // 删除连接序号为2的数据库连接 </pre> 可以在使用之后关闭添加的连接,可以使用closeConnect方法,例如: PHP代码 <pre> $User->closeConnect(3); // 关闭连接序号为3的数据库连接 </pre> [[category:ThinkPHP]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)