工作的时候遇到了这个需求,随便记录下喵~
用的方法是写个模型来切换,在需要用到这个数据库的时候载入模型就可以啦
这个方法在仅有某些地方需要切换数据库的时候比较方便
在模型里写需要切换的数据库~
model User.php
namespace app\XXX\model; use think\Model; class User extends Model { protected $connection = [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'yomuki', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => 'root', // 数据库连接端口 'hostport' => '3306', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'yomuki_', ]; }控制器 Home.php
namespace app\XXX\controller; use think\Db; use app\home\model\User; class Home { public function test(){ $a = DB::name('xxx')->select();//这个是当前数据库 $user = model('User'); $b=$user::name('xxx')->select();//这个是切换到模型里的数据库 } }