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
:
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 username
và password
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_dump
và die
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:
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
, username
và password
. Để 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.