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

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

藏色散人
リリース: 2021-06-07 09:11:51
転載
2898 人が閲覧しました

以下は、複数データベース接続とクロスデータ接続クエリ操作を実装するための 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート