Heim  >  Artikel  >  PHP-Framework  >  Das thinkPHP5-Framework implementiert mehrere Datenbankverbindungen

Das thinkPHP5-Framework implementiert mehrere Datenbankverbindungen

藏色散人
藏色散人nach vorne
2021-05-31 09:59:572890Durchsuche

Die folgende thinkphp-Framework-Tutorial-Kolumne stellt Ihnen das thinkPHP5-Framework vor, um Multi-Datenbank-Verbindungen und datenübergreifende Verbindungsabfragevorgänge zu realisieren. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

Die Details sind wie folgt:

1. Verbindung mit mehreren Datenbanken

Methode 1: Wenn Sie eine Verbindung zu anderen Datenbanken herstellen müssen, verwenden Sie den Db::connect() Methode zum dynamischen Herstellen einer Verbindung mit der Datenbank. Zum Beispiel: 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

String-Parameter:

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

Eine detaillierte Verwendung finden Sie in der vollständigen Entwicklung von thinkphp5 Handbuch: https://www.kancloud.cn/manual/thinkphp5/118059

Methode 2:

Fügen Sie mehrere Datenbankkonfigurationen in der Anwendungskonfigurationsdatei hinzu, zum Beispiel:

rrreee

Wenn Sie eine Verbindung herstellen müssen, verwenden Sie Db::connect( "database1")Stellen Sie eine Verbindung zur angegebenen Datenbank her und schreiben Sie Funktionen direkt nach der Verbindung, wenn Sie Datenbankoperationen ausführen, zum Beispiel:

rrreee🎜🎜 🎜2. Datenbankübergreifende Verbindungsabfrage🎜🎜🎜🎜🎜Methode 1:🎜Verwenden Sie die Methode Db::query("sql"), führen Sie die SQL-Anweisung aus und verwenden Sie database.table um die Datenbank und die Tabelle in der SQL-Anweisung anzugeben, zum Beispiel: 🎜🎜Verbinden, um Datenbank Datenbank1 abzufragen. Daten mit derselben ID in Tabelle Tabelle1 und Tabelle2 in Datenbank Datenbank2🎜rrreee🎜🎜Methode 2:🎜Verwenden Sie Schleifen, um jeweils verschiedene Datenbanken abzufragen 🎜🎜Fragen Sie nun die Daten in Datenbank1 ab, durchlaufen Sie die Abfrageergebnismenge und fragen Sie die Daten, die die Bedingungen in Datenbank2 erfüllen, separat ab.🎜🎜ps: Wenn die Beschreibung nicht korrekt ist, stellen Sie bitte Fragen🎜

Das obige ist der detaillierte Inhalt vonDas thinkPHP5-Framework implementiert mehrere Datenbankverbindungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen