欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP laravel實現(xiàn)配置使用多數(shù)據(jù)庫

 更新時間:2022年10月21日 11:29:05   作者:camellia  
有的時候,我們在開發(fā)的過程中需要連接多個數(shù)據(jù)庫。Laravel框架中早已為我們想到了這樣的需求。這篇文章主要為大家介紹了laravel配置使用多數(shù)據(jù)庫的方法,需要的可以參考一下

有的時候,我們在開發(fā)的過程中需要連接多個數(shù)據(jù)庫。

Laravel框架中早已為我們想到了這樣的需求。

配置很簡單。

在根目錄下的/config/database.php文件中配置:

Laravel中為我們提前預(yù)設(shè)了多種類型的數(shù)據(jù)庫連接

  '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',
        ],
  
        'sqlsrv' => [
            'driver' => 'sqlsrv',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
        ],
  
    ],

默認(rèn)連接的是mysql配置,配置項是存儲在根目錄下的.env文件中的。

如果使用多數(shù)據(jù)連接,則只需要,根據(jù)你的數(shù)據(jù)庫類型,在配置你需要的數(shù)據(jù)庫連接就好了。

如下面所示:

我增加了一個mysql數(shù)據(jù)庫連接和oracle數(shù)據(jù)庫連接

'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),
        ],
  
        // 本地數(shù)據(jù)庫,存儲本地數(shù)據(jù)
        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'xxxxx'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', xxxx),
            'username' => env('DB_USERNAME', xxxx),
            'password' => env('DB_PASSWORD', xxxxxxx'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => false,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
  
        // 線上數(shù)據(jù)庫,將本地數(shù)據(jù),同步至線上數(shù)據(jù)
        'mysql_base' => [
            'driver' => 'mysql',
            'read' => [
                'host' => env('DB_HOST_BASE', 'xxxxx'),
            ],
            'write' => [
                'host' => env('DB_HOST_BASE', 'xxxxx')
            ],
            'port' => env('DB_PORT_BASE', xxxx),
            'database' => env('DB_DATABASE_BASE', xxxx),
            'username' => env('DB_USERNAME_BASE', xxxxxx),
            'password' => env('DB_PASSWORD_BASE', 'xxxxx'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],
  
        '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',
        ],
  
        'sqlsrv' => [
            'driver' => 'sqlsrv',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
        ],
         // oracle 數(shù)據(jù)庫連接
        'oracle' => [
            'driver' => 'oracle',
            'host' => '210.30.64.37',
            'port' => xxx,
            'database' => '',
            'service_name' => xxxxx,
            'username' => xxx_xxxx,
            'password' => xxxx_xxxx,
            'charset' => 'AL32UTF8',
            'prefix' => '',
        ]
  
    ],

我們在使用其余的數(shù)據(jù)庫連接,如下方所示:

1:使用原生sql

DB::connection('oracle')->select("SELECT * from  xxxxx WHERE XH = '{$personal_id}' AND XM = '{$name}'")

2:使用laravel封裝的數(shù)據(jù)庫方法:

$userinfo = DB::connection('mysql_base')->table('user')
                                                ->where('personal_id', '=', $data['personal_id'])
                                                ->where('name', '=', $data['name'])
                                                ->where('school_id', '=', $data['school_id'])
                                                ->select('id', 'type', 'school_id', 'personal_id', 'name', 'email', 'ilab_user', 'ilab_pwd')
                                                ->first();

最后,還是強(qiáng)調(diào)一句,數(shù)據(jù)庫連接相關(guān)的用戶名,連接,密碼之類的,一般還是寫在.env文件中的,方便我們統(tǒng)一管理。

以上就是PHP laravel實現(xiàn)配置使用多數(shù)據(jù)庫的詳細(xì)內(nèi)容,更多關(guān)于PHP laravel配置多數(shù)據(jù)庫的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論