以下は、複数データベース接続とクロスデータ接続クエリ操作を実装するための thinkPHP5 フレームワークを紹介する thinkphp フレームワーク チュートリアル コラムです。必要としている!
詳細は次のとおりです:
1. 複数のデータベース接続
方法 1:接続が必要な場合 他のデータベースの場合は、Db::connect()
メソッドを使用してデータベースに動的に接続します。メソッドのパラメータは、データベース内で構成された配列または文字列です。例:
文字列パラメータ:
Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8');
構成配列パラメータ:
Db::connect([ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_', ]);
詳細な使用法については、thinkphp5 完全開発マニュアルを参照してください: https://www.kancloud.cn/manual/ thinkphp5/118059
方法 2: アプリケーション構成ファイルに複数のデータベース構成を追加します。例:
'database1' => []//数据库配置数组 'database2' => []//数据库配置数组
接続する必要がある場合は、## を使用します。 #Db::connect("database1") 接続データベースを指定します。データベース操作を実行するときは、接続の直後に関数をチェーン内に記述します。例:
$db = Db::connect("database1"); $db->name("table")->select();
2. クロスデータベース接続クエリ
方法 1: Db::query("sql") メソッドを使用して SQL を実行します。ステートメントを作成し、SQL ステートメントで
database.table を使用してデータベースとテーブルを指定します。例:
select * from database1.table1 as t1 inner join database2.table2 as t2 where t1,id=t2.id
方法 2: ループを使用して、それぞれ異なるデータベースをクエリします
次に、データベース 1 のデータをクエリし、クエリ結果セットを走査し、そのデータを個別にクエリします。データベース 2 のスプライシング条件を満たしています。ps: 説明が適切でない場合は、質問してください以上がthinkPHP5 フレームワークは複数のデータベース接続を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。