Kết Nối Với Database

Trong một ứng dụng PHP, kết nối với cơ sở dữ liệu (CSDL hoặc database) là một việc hết sức phổ biến và hầu hết tất cả các website hiện nay đều sử dụng cơ sở dữ liệu. Ở bài học này chúng ta sẽ tìm hiểu các tạo database sử dụng MySQL, cấu hình và sử dụng database trong Laravel Framework.

Tạo Cơ Sở Dữ Liệu

Để có thể làm việc với CSDL chúng ta cần phải cài đặt một phần mềm quản lý CSDL (hay còn gọi là hệ quản trị CSDL (Database Management System DBMS). Trong khóa học này chúng ta sẽ sử dụng MySQL làm hệ quản trị CSDL.

Để tạo một database trước tiên chúng ta sẽ sử dụng MySQL Client kết nối với MySQL Server, trên Command Line bạn chạy câu lệnh sau

> mysql -u root -p

Bạn cũng có thể sử dụng một user khác mà bạn tạo ra trên MySQL Server. User root là user mặc định được tạo ra sau khi cài đặt MySQL Server. Sau khi chạy câu lệnh trên MySQL Client sẽ yêu cầu bạn nhập vào mật khẩu dành cho user root:

Kết nối với MySQL Server

Sau khi nhập mật khẩu chúng ta có thể tạo database mới bằng cách chạy câu lệnh sau:

create database laravel_app;

Sau khi chạy câu lệnh trên bạn có thể kiểm tra lại việc tạo mới CSDL đã được thành công bằng cách chạy câu lệnh sau:

show databases;

Chú ý: Nếu bạn không thể tạo CSDL với tên như trên do tên này đã được sử dụng trước đó thì bạn có thể đổi tên khác hoặc xóa bỏ CSDL với tên như vậy sử dụng lệnh drop database laravel_app.

Cấu Hình Database

Tiếp theo chúng ta cần cấu hình ứng dụng để sử dụng CSDL vừa với tạo ra trong ứng dụng. Việc này được thực hiện khá đơn giản trong Laravel Framework. Mở file app/config/database.php và tìm tới dòng số 55 bạn sẽ thấy đoạn mã sau:

'mysql' => array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'forge',
    'username'  => 'forge',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

Thay đổi giá trị cho khóa database trong mảng trên thành laravel_app và cập nhật 2 khóa usernamepassword giống với cấu hình MySQL mà bạn đang sử dụng.

Kiểm Tra Kết Nối Tới Database

Để kiểm tra kết nối tới database đã thành công chúng ta sẽ tạo một route trong routes.php với nội dung như sau:

Route::get('/checkDB', function ()
{
    dd(DB::connection()->getDatabaseName());
});

Ở đây chúng ta sử dụng hàm hỗ trợ dd trong Laravel, hàm này tương đương với việc sử dụng hai hàm var_dumpdie liên tiếp. Câu lệnh trên tương đương với:

var_dump(DB::connection()->getDatabaseName());
die();

Sau đó truy cập địa chỉ /checkDB trên trình duyệt bạn sẽ thấy kết quả như sau:

Larvel kiểm tra kết nối với database

Tạo Bảng

Tiếp theo chúng ta sẽ tạo một bảng có tên là users. Bảng này có 4 trường là firstname, lastname, usernamepassword. Để làm điều này trước tên chúng ta cần chọn CSDL để làm việc với. Trên MySQL Client thực thi câu lệnh sau:

use laravel_app;

Tiếp theo để tạo bảng users chạy câu lệnh dưới đây:

create table users(
    id int(11) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
    firstname varchar(255),
    lastname varchar(255),
    username varchar(255),
    password varchar(255)
);

Sau khi thực thi câu lệnh trên bạn có thể xác nhận bảng đã được tạo thành công bằng cách chạy câu lệnh:

show tables;

Câu lệnh trên sẽ liệt kê các bảng được tạo ra trên CSDL mà chúng ta đã chọn.