thinkPHP5 framework implements multiple database connections
The following is the thinkphp framework tutorial column to introduce the thinkPHP5 framework to implement multi-database connections and cross-data connection query operations. I hope it will be helpful to friends in need!
The details are as follows:
1. Multiple database connections
Method 1:When a connection is required For other databases, use the Db::connect()
method to dynamically connect to the database. The method parameters are arrays or strings configured in the database. For example:
String parameters:
Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8');
Configuration array parameters:
Db::connect([ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_', ]);
For detailed usage, please refer to thinkphp5 complete development manual: https://www.kancloud.cn/manual/thinkphp5/118059
Method 2: Add multiple database configurations in the application configuration file, for example:
'database1' => []//数据库配置数组 'database2' => []//数据库配置数组
When you need to connect, use Db::connect("database1")
to specify the connection Database, when performing database operations, write functions in a chain directly after the connection, for example:
$db = Db::connect("database1"); $db->name("table")->select();
2. Cross-database connection query
Method 1: Use the Db::query("sql")
method to execute the sql statement, and use database.table
in the sql statement to specify the database and table, for example :
Connect to query the data with the same ID in table1 in database database1 and table2 in database database2
select * from database1.table1 as t1 inner join database2.table2 as t2 where t1,id=t2.id
Method 2: Use loops to query different databases respectively
Now query the data in database1, traverse the query result set, and separately query the data that meets the conditions in database2 for splicing
ps: If the description is not in place, please ask questions
The above is the detailed content of thinkPHP5 framework implements multiple database connections. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Solution to the error reported when deploying thinkphp5 in Pagoda: 1. Open the Pagoda server, install the php pathinfo extension and enable it; 2. Configure the ".access" file with the content "RewriteRule ^(.*)$ index.php?s=/$1 [QSA ,PT,L]”; 3. In website management, just enable thinkphp’s pseudo-static.

Solution to thinkphp5 url rewriting not working: 1. Check whether the mod_rewrite.so module is loaded in the httpd.conf configuration file; 2. Change None in AllowOverride None to All; 3. Modify the Apache configuration file .htaccess to "RewriteRule ^ (.*)$ index.php [L,E=PATH_INFO:$1]" and save it.

Methods for thinkphp5 to obtain the requested URL: 1. Use the "$request = Request::instance();" method of the "\think\Request" class to obtain the current URL information; 2. Use the built-in helper function "$request-> url()" to obtain the complete URL address including the domain name.

thinkphp5 post cannot get a value because TP5 uses the strpos function to find the app/json string in the content-type value of the Header. The solution is to set the content-type value of the Header to app/json.

How to remove the thinkphp5 title bar icon: 1. Find the favicon.ico file under the thinkphp5 framework public; 2. Delete the file or choose another picture to rename it to favicon.ico and replace the original favicon.ico file.

Solution to thinkphp5 prompting that the controller does not exist: 1. Check whether the namespace in the corresponding controller is written correctly and change it to the correct namespace; 2. Open the corresponding tp file and modify the class name.

How to query yesterday's data in ThinkPHP5: 1. Open ThinkPHP5 related files; 2. Query yesterday's data through the expression "db('table')->whereTime('c_time', 'yesterday')->select();" Can.

How to set error prompts in thinkphp5: 1. Enter the public folder in the project root directory and open the index.php entry file; 2. View the comments on the debug mode switch; 3. Adjust the value of the "APP_DEBUG" constant to true to display Error message prompt.
