首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP
TP3.2同时操作多个数据库
作者:小萝卜 2019-11-21 【 TP3.2 】 浏览 1256
简介除了在预先定义数据库连接和实例化的时候指定数据库连接外,我们还可以在模型操作过程中动态的切换数据库,支持切换到相同和不同的数据库类型。用法很简单, 只需要调用Model类的db方法,用法:
除了在预先定义数据库连接和实例化的时候指定数据库连接外,我们还可以在模型操作过程中动态的切换数据库,支持切换到相同和不同的数据库类型。用法很简单, 只需要调用Model类的db方法,用法:
$this->db(1,"mysql://root:123456@localhost:3306/test")->query("查询SQL");
数据库编号用数字格式,对于已经调用过的数据库连接,是不需要再传入数据库连接信息的,系统会自动记录。对于默认的数据库连接,内部的数据库编号是0,因此为了避免冲突,请不要再次定义数据库编号为0的数据库配置。
实例:
同时将用户输入的数据保存到两个不同数据下的表
控制器代码:
public function AddUser(){
if(IS_POST){
if(I('post.UserName')!=''&& I('post.UserEmail','','email')!=''){
$User = D('Admin/Userinfo');
$User -> AddUser(I('post.'));
}
}else{
$this->show();
}
}
模型类代码:
<?php
namespace AdminModel;
use ThinkModel;
class UserinfoModel extends Model{
public function AddUser($data){
$data['LastLogin'] = date("Y-m-d H:i:s");
$this->create($data);
if($this->add()){
echo "第一张表添加成功";
$this->db(1,'mysql://root:123@localhost:3306/eko_1');
$this->create($data);
if($this->add()){
echo "第二张表添加成功";
}
}else{
echo "失败";
}
}
}
在使用D()实例化自定义模型是需要严格遵守命名格则,首字母大写,如果类名是UserInfo则对应数据库名称为user_info
很赞哦! (0)
下一篇:TP3.2输入验证和I方法使用
相关文章
- TP5数据库操作时怎么过略不存在的字段
- PHP/ThinkPHP实现用户一段时间没有操作,系统自动退出
- TP5 databackup拓展插件,实现数据库备份下载还原代码分享
- TP6/ThinkPHP6 多应用模式域名串模块的问题
- TP5 接口设计中异常处理
- TP6使用Jwt验证token时报错Cannot pass parameter 3 by reference
- TP5.1 钩子与行为应用
- tp5.0使用think-queue+redis实现消息队列简易教程
- TP6/ThinPHP6 获取主键自增ID
- ThinkPHP集成QueryList和PhantomJS插件实现采集动态加载的页面的数据