如果是同一台主机上的数据库的话,可以使用以下方法:
namespace app\api\controller;
use think\Controller;
use think\Db;
......
$data = Db::table('数据库名.表名')->语句();
通过 Db::connect 链接对应的数据库,然后调用
不要修改 config/database.php 下的数据库配置,这样正常调用model正常调用数据库不会受到影响
建立一个公共的继承类 Base,写入这个公用方法
*此方法有个bug,如果$db重复执行一个语句的话会无法触发,所以建议使用上面的方式
namespace app\api\controller;
use think\Controller;
use think\Db;
class Base extends Controller
{
public function initialize()
{
}
public function connect()
{
$db = Db::connect([
'type' => 'mysql',
'hostname' => '数据库ip',
'database' => '数据库名',
'username' => '数据库名',
'password' => '数据库密码',
'hostport' => '端口号',
'charset' => 'utf8',
]);
return $db;
}
}
其他类调用方法:
namespace app\api\controller;
class Index extends Base
{
public function index()
{
$db = Base::connect();
$res = $db->table('要操作的表名')->select();
return json($res);
}
}