thinkphp跨库查询
时间: 2023-08-26 15:03:54 浏览: 45
在 ThinkPHP 中,进行跨库查询可以使用以下两种方式:
1. 使用完整的数据库名进行查询
可以在查询操作中使用完整的数据库名来指定需要查询的表,例如:
```php
$users = Db::table('mydb.user')->select();
```
这里的 `mydb` 是跨库查询的目标数据库名,`user` 则是该数据库中的表名。
2. 在配置文件中添加跨库配置
可以在 ThinkPHP 的数据库配置文件 `database.php` 中添加一个名为 `db2` 的数据库配置,指定该数据库的连接信息和查询前缀,例如:
```php
return [
// 默认数据库连接配置
'default' => [
// ...
],
// 跨库查询配置
'db2' => [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'mydb',
'username' => 'root',
'password' => '',
'hostport' => '',
'charset' => 'utf8',
'prefix' => 'mydb.', // 查询前缀
'debug' => true,
'deploy' => 0,
'rw_separate' => false,
'master_num' => 1,
'slave_no' => '',
'fields_strict' => true,
'resultset_type' => 'array',
'auto_timestamp' => false,
'sql_explain' => false,
],
];
```
然后在查询操作中使用 `db2` 数据库配置名和表名进行查询,例如:
```php
$users = Db::connect('db2')->table('user')->select();
```
这里的 `db2` 是在 `database.php` 配置文件中添加的跨库查询配置的名称,`user` 则是该数据库中的表名。
注意:在使用第二种方式时,需要在跨库配置中指定查询前缀,即在表名前添加数据库名和一个点号,例如 `mydb.user`。