预计阅读时间: 4 分钟
database.php
in config
目录该文件位于目录中 config
您的 Laravel 应用程序。
在文件中 database.php
是否可以 defi完成多个数据库连接。每个连接都必须 definited 作为一个数组。该数组应包含以下信息:
driver
:要使用的数据库驱动程序;host
: 名字 host
或地址 IP
数据库服务器;port
:数据库服务器端口号;database
:数据库名称;username
:连接数据库的用户名;password
:连接数据库的密码;例如下面的代码 defi有两种数据库连接,一种用于 MySQL,一种用于 PostgreSQL:
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'pgsql' => [
'driver' => 'pgsql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
'schema' => 'public',
'sslmode' => 'prefer',
],
后 defi建立数据库连接后,您可以在代码中使用它们 Laravel
。为此,您可以使用 facade
数据库的。那里 facade
数据库提供了与数据库交互的统一接口。
要在数据库连接之间切换,可以使用该方法 Connection()
的 facade
数据库。方法 Connection()
将数据库连接的名称作为参数。
例如,以下代码从 mysql DB 转到 pgsql DB:
use Illuminate\Support\Facades\DB;
DB::connection('pgsql');
一旦切换到数据库连接,您就可以使用它来查询数据库并与数据库交互。
在 Laravel 中使用多个数据库有很多好处,包括:
以下是在 Laravel 中使用多个数据库的一些最佳实践:
Connection()
从一开始 DB 到另一个 - 这将帮助您避免意外运行 询问 上 数据库 错误的。在 Laravel 中使用多个数据库是提高应用程序性能、安全性和可扩展性的好方法。通过遵循本文中描述的最佳实践,您可以在 Laravel 中有效地使用多个数据库。
Ercole Palmeri