thinkphp 多数据库切换实例
来源:互联网 发布:淘宝平面模特 编辑:程序博客网 时间:2024/06/03 13:48
在同一个站点的多数库操作,对于我这样一个初学者来说一直是一个难点,在学习了thinkphp之后,发现这个问题的解决变得容易多了,针对thinkphp3.1版本的手册给出的提示,我整理出了3种切换数据的方式和实例供大家参考和指正。
首先配置App/Conf/config.php(三种方法都需要配置)
<span style="font-size:18px;"><?php</span>
<p><span style="font-size:18px;">//默认数据库的配置 'DB_HOST' => '127.0.0.1', 'DB_USER' =>'root', 'DB_PWD' =>'', 'DB_NAME'=>'blog', 'DB_PREFIX'=>'',</span></p><p><span style="font-size:18px;"> //第一个数据库的链接 'DB_CONFIG1'=>array( 'db_type'=>'mysql', 'db_user'=>'root', 'db_pwd'=>'', 'db_host'=>'localhost', 'db_port'=>'3306', 'db_name'=>'think' ),</span></p><p><span style="font-size:18px;">?></span></p>
第一种:一个模型对应某一数据库的一个表
(2)针对不同的表建立不同model
例如 :分别建立think库的user表和Node表
UserModel.class.php
<strong> <span style="font-size:18px;">class UserModel extends Model{ protected $connection='DB_CONFIG1'</span> }?></strong>
NodeModel.class.php
<p><strong><?php</strong></p><p><strong> class NodeModel extends Model{ // protected $dbname = 'user'; protected $connection='DB_CONFIG1'; }?></strong></p>
(3)
在控制器中调用
<p><strong><?php</strong></p><p><strong> Class IndexAction extends Action{ //多模型切换数据库 public function index(){ $res = D('Node')->select(); p($res); echo "-----"; $user=D('user')->select(); p($user); $this->display(); } </strong></p>
结果运行正常。
第二种 在Action方法中切换数据库
(1)建立不同的Model同方法一
(2)
//在Action的方法中切换数据库 public function test(){ // $user = M('User','','DB_CONFIG1')->query("select * from access"); $use=M('User')->db(1,'DB_CONFIG1')->query("select * from user"); $blog=M('User')->db(0)->query("select * from user"); p($use); p($blog); $this->display('index'); }
结果运行正常
第三种 在model类中切换,调用model类的方法
(1)
<p><?php</p><p> class UserModel extends Model{ // protected $dbname = 'user'; protected $connection='DB_CONFIG1';</p><p> public function abc(){</p><p> $user = $this->db(1)->query("select * from user"); //db(1)代表第一个数据库 // $blog = $this->db(0)->query("select *from user"); //db(0)代表默认数据库,二者随意切换 return $user; } }?></p>
(2)
//在model类中切换,调用model类的方法 public function fun(){ $res = D('User')->abc(); p($res); $this->display('index'); }
结果运行正常。
0 0
- thinkphp 多数据库切换实例
- thinkphp多数据库动态切换
- thinkphp连接多数据库 数据库切换
- thinkphp 多数据库 使用实例
- ThinkPHP多数据库连接
- ThinkPHP多数据库操作
- thinkphp连接多数据库
- thinkphp连接多数据库
- Thinkphp5多数据库切换
- ThinkPHP多数据库连接的方法
- thinkphp多数据库配置,使用
- mybatis多数据库动态切换实现
- thinkphp3.2.3动态切换多数据库
- ThinkPHP5.0多数据库切换
- 多数据源切换
- thinkphp多数据库连接:分布式数据库支持
- Web C#2.0 DataSet和Reader封装组件实现自动多数据库切换(含组件源码和实例)
- Web C#2.0 DataSet和Reader封装组件实现自动多数据库切换(含组件源码和实例)
- Java开发中的23种设计模式详解
- C++ Primer : 第二章:变量和基本类型(1)
- [记录]MongoDB Java代码---入门操作
- 一分钟之内 互联网发生了什么?
- thinkphp输出变量和常量
- thinkphp 多数据库切换实例
- jquery 选择器,模糊匹配
- smart config
- python爬虫教程大全
- js 系统对话框
- Qt Creator 中,如何更改h,cpp,ui的文件并不让ui失效
- get和post方法区别
- Fragment调用父activity中的方法
- 雨霖鈴(柳永)