THINKPHP 跨库多表联查

$connection = array(
        'db_type' => 'mysql',
        'db_user' => 'root',1. 
        'db_pwd'  => '123456',
        'db_host' => '127.0.0.1',
        'db_port' => '3306',
        'db_name' => 'sfc_001'
);
$model = M('goods', 'ecs_', $connection);
$res = $model
     ->table('ecshop.ecs_region t1, sfc_001.ecs_goods t2')
     ->where('t1.region_id = t2.region_id')
     ->limit(10)
     ->field('t2.*')
     ->select();

 

转载于:https://my.oschina.net/u/1422143/blog/779036

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`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值