Cấu hình kết nối Database
Mặc định ở tệp config/database.php
đã có sẵn mẫu các kết nối thường dùng và các thành phần cần cấu hình. Các driver và các hệ quản trị cơ sở dữ liệu tương ứng:
- sqlite – SQLite
-
mysql – MySQL
-
pgsql – PostgreSQL
-
sqlsrv – SQL Sever
Ví dụ: Mình cần kết nối đến hai hệ quản trị cơ sở dữ liệu sử dụng SQL Sever. Mình sẽ tạo một kết nối mới dựa vào phần cấu hình mẫu của Laravel và xóa các kết nối không dùng, mình sẽ có:
'connections' => [ '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, ], 'sqlsrv_book' => [ 'driver' => 'sqlsrv', 'url' => env('DATABASE_URL_BOOK'), 'host' => env('DB_HOST_BOOK', 'localhost'), 'port' => env('DB_PORT_BOOK', '1433'), 'database' => env('DB_DATABASE_BOOK', 'forge'), 'username' => env('DB_USERNAME_BOOK', 'forge'), 'password' => env('DB_PASSWORD_BOOK', ''), 'charset' => 'utf8', 'prefix' => '', 'prefix_indexes' => true, ], ],
Cấu hình .env
Sau khi cấu hình thì gọi ra và đặt giá trị cho nó thôi. Thế là xong phần kết nối.
DB_CONNECTION=sqlsrv DB_HOST=113.114.115.00 DB_PORT=1433 DB_DATABASE=user DB_USERNAME=sa DB_PASSWORD=password DB_CONNECTION=sqlsrv_book DB_HOST_BOOK=115.116.117.00 DB_PORT_BOOK=1433 DB_DATABASE_BOOK=book DB_USERNAME_BOOK=sa DB_PASSWORD_BOOK=password
Sử dụng Eloquent
Sau khi tạo Model bạn thêm giá trị protected $connection
để Model nhận chính xác cơ sở dữ liệu.
protected $connection = 'sqlsrv';
Sử dụng Query Builder
Cũng tương tự như Eloquent trước gọi dữ liệu cần xác định connection
để nhận chính xác cơ sở dữ liệu.
// Thay vì $users = DB::table('users')->get(); $books = DB::table('books')->get(); // Thì sẽ $users = DB::connection('sqlsrv')->table('users')->get(); $books= DB::connection('sqlsrv_book')->table('books')->get();