thinkphp6 跨库连表查询

这篇博客探讨了如何在PHP中进行数据库连接配置,使用LEFT JOIN进行多表联查。通过定义常量DB_GAME_CHANNEL获取数据库配置,并在查询中结合GameTaskApply、ChannelInfo和Game表进行数据操作。

控制器

public static $tableNameChannelInfo=DB_GAME_CHANNEL. '.表名';


$query=GameTaskApply::alias('task_apply')
                                  ->leftjoin(self::$tableNameChannelInfo . ' channel_info ','task_apply.channel_id = channel_info.channel_id')
                                  ->leftjoin(self::$tableNameGame . ' game ' 

config配置

$dbConf= config('database.connections');
define('DB_GAME_CHANNEL',$dbConf['game_admin']['database']);
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、付费专栏及课程。

余额充值