ホームページ  >  記事  >  PHPフレームワーク  >  thinkPHP5 フレームワークは複数のデータベース接続を実装します

thinkPHP5 フレームワークは複数のデータベース接続を実装します

藏色散人
藏色散人転載
2021-05-31 09:59:572879ブラウズ

以下は、複数データベース接続とクロスデータ接続クエリ操作を実装するための 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 を使用してデータベースとテーブルを指定します。例:

Connect データベースの table1 とテーブル 2 の同じ ID を持つデータをクエリします。データベース データベース 2

select * from database1.table1 as t1 inner join database2.table2 as t2 where t1,id=t2.id

方法 2: ループを使用して、それぞれ異なるデータベースをクエリします

次に、データベース 1 のデータをクエリし、クエリ結果セットを走査し、そのデータを個別にクエリします。データベース 2 のスプライシング条件を満たしています。

ps: 説明が適切でない場合は、質問してください

以上がthinkPHP5 フレームワークは複数のデータベース接続を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。