Nội dung bài viết
STDIO Việc thao tác với database trong quá trình phát triển và bảo trì website là công việc thường xuyên đối với những lập trình viên. Với mỗi database được tích hợp trong website thì chúng ta có nhiều cách thao tác khác nhau. Ví dụ website ASP.NET MVC sử dụng database SQL Server thì chúng ta có thể sử dụng Entity Framework, Linq to SQL với ngôn ngữ C# để thao tác với database. Thì trong bài viết này, tôi sẽ hướng dẫn các bạn cách thao tác như tạo database, tạo bảng, cập nhật, xóa, lấy dữ liệu từ MySQL database sử dụng MySQLi Extension trong ngôn ngữ PHP.

Giới thiệu

Việc thao tác với database trong quá trình phát triển và bảo trì website là công việc thường xuyên đối với những lập trình viên. Với mỗi database được tích hợp trong website thì chúng ta có nhiều cách thao tác khác nhau. Ví dụ website ASP.NET MVC sử dụng database SQL Server thì chúng ta có thể sử dụng Entity Framework, Linq to SQL với ngôn ngữ C# để thao tác với database. Thì trong bài viết này, tôi sẽ hướng dẫn các bạn cách thao tác như tạo database, tạo bảng, cập nhật, xóa, lấy dữ liệu từ MySQL database sử dụng MySQLi Extension trong ngôn ngữ PHP.

Tiền đề bài viết

Trong quá trình phát triển website, tôi phải thao tác nhiều với database. Từ đó đúc rút ra được những kiến thức, kinh nghiệm bổ ích. Xuất phát từ chính sở thích thích chia sẽ kiến thức của tôi. Tôi mong muốn rằng qua bài viết này, các bạn có thể thành thạo các thao tác trên MySQL trong ngôn ngữ PHP.

Yêu cầu các bạn phải có kiến thức về SQL và cài đặt máy chủ php.  Các bạn có thể tham khảo ở bài viết Localhost Và Cách Cài Đặt của tác giả Ryan Lê.

Đối tượng hướng đến

Những lập trình viên lập trình web với php mong muốn sử dụng database trong website của họ. Những đối tượng khác xem đây là nguồn tài liệu tham khảo.

Tổng quan về MySQL

Cũng giống như những hệ quản trị cơ sở dữ liệu khác như SQL Server, thì MySQL còn có một số đặc điểm nổi bật sau đây:

  • MySQL là hệ cơ sở dữ liệu sử dụng cho web.
  • MySQL hoạt động trên một máy chủ (server).
  • MySQL phù hợp cho ứng dụng nhỏ và lớn.
  • MySQL sử dụng cú pháp SQL.
  • MySQL rất nhanh và dễ dàng sử dụng.
  • MySQL hổ trợ nhiều nền tảng khác nhau như Windows, Linux...
  • MySQL hoàn toàn miễn phí.

Dữ liệu trong MySQL được lưu trữ dưới dạng bảng. Mỗi bảng là tập hợp các dữ liệu có quan hệ với nhau chứa các dòng và cột.

Ví dụ trong công ty cần quản lý nhân viên. Tương ứng chúng ta sẽ có table Employee đơn giản như sau:

ID Name Gender Salaray
1 Nguyen Van A Male 3.000.000
2 Nguyen Van B Male 5.000.000
3 Nguyen Van C Male 10.000.000

Thao tác với MySQL trong PHP

Connect

Với bất kì hệ quản trị cơ sở dữ liệu nào, để bắt đầu làm việc được với nó thì đầu tiên các bạn phải connect với hệ quản trị database đó. Trong PHP ta mở connect như sau:

$conn = mysqli_connect("servername", "username", "password", "dbname");

Giải thích:

Hàm mysqli_connect sẽ mở một connect tới MySQL với các tham số như sau:

Tham số thứ 1: Servername của các bạn. Nếu bạn đang test ở local (chính ở máy tính các bạn) các bạn truyền vào "localhost".

Tham số thứ 2: Username của database.

Tham số thứ 3: Password của database.

Tham số thứ 4: Chính là database mà bạn muốn làm việc. Mọi câu truy vấn sẽ thực thi trên database này. Lưu ý, tham số này các bạn có thể chưa cần truyền nếu bạn muốn tạo mới database. 

Có thể chọn database mà bạn muốn thao tác bằng cách sử dụng câu lệnh  mysqli_select_db

mysqli_select_db("connect", "dbname"); 

Với tham số lần lượt là biến connect và tên database.

Các bạn nhớ rằng, luôn luôn kiểm tra connect trước khi thao tác với MySQL.

if(!$conn)
{
	echo "Connect Failed!". mysqli_connect_error($conn);
}
else
{
	echo "Successsful";
}

Hàm mysqli_connect_error($conn) sẽ trả về lỗi nếu connect thất bại.

Trong bài viết này tôi sẽ tạo 1 connect như sau:

$servername = 'localhost';
$username = 'root';
$password = '';
		
$conn = mysqli_connect($servername, $username, $password);

if(!$conn)
{
	echo "Connect Failed!". mysqli_connect_error($conn);
}
else
{
	echo "Successsful";
}

Do tôi đang test ở môi trường local nên servername = 'localhost', username  = 'root' và password =''.

Create database

Sau khi connect tới MySQL thì chúng ta hoàn toàn có quyền thực thi các thao tác trên nó. 

Mỗi thao tác chúng ta cần tạo 1 câu truy vấn SQL mà sử dụng hàm  mysqli_query để thực thì câu truy vấn đó xuống MySQL.

Tạo 1 database có tên là QuanLyNhanVien

$sql = "CREATE DATABASE QuanLyNhanVien";
mysqli_query($conn, $sql);

Các bạn thấy cây truy vấn hoàn toàn quen thuộc phải không nào. Những thao tác như insert, update, delete hoàn toàn tương tư, sẽ nói đến ở các mục sau.

Các bạn vào phpMyAdmin sẽ thấy một database có tên QuanLySinhVien được tạo ra.

Create table

Tạo table có tên là Employee gồm các cột là Id tự tăng, Name, Gender, Salary

Tạo câu truy vấn

$dbname = 'QuanLyNhanVien';
mysqli_select_db($conn, $dbname);

$sqlTable = "CREATE TABLE Employee(
			Id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
			Name VARCHAR(100) NOT NULL,
			Gender VARCHAR(5) NOT NULL,
			Salary DECIMAL NOT NULL
			)";

Thực thi câu truy vấn

mysqli_query($conn, $sqlTable);

Kết quả sau khi thực thi câu truy vấn

ss_1

Insert

Cũng như tạo bảng đầu tiên chúng ta tạo câu truy vấn.

$sqlInsert = "INSERT INTO Employee(Name, Gender, Salary) VALUES ('Nguyen Van A', 'Male', 80000)";

Và thực thi câu truy vấn.

mysqli_query($conn, $sqlInsert);

Select

Tạo câu truy vấn select. Ở đây tôi sẽ lấy về tất cả các trường dữ liệu và tất cả các dòng có trong table Employee.

$sqlSelect = "SELECT * FROM Employee";

Thực thi câu truy vấn trả về $result

$result = mysqli_query($conn, $sqlSelect);

Khác với những lần thực thi truy vấn khác thì đối với select ta cần trả về $result để có thể lấy ra thông tin như dưới đây:

if(mysqli_num_rows($result) > 0)
{
	while ($row = mysqli_fetch_assoc($result))
	{
		echo $row['Id'].','.$row['Name'].','.$row['Gender'].','.$row['Salary'];
		echo "<br />";
	}	
}

Giải thích:

Dòng 1: Hàm mysqli_num_rows($result) lấy về tổng số dòng lấy được khi thực thi câu truy vấn select. Nếu kết quả trả về > 0 chúng ta sẽ lấy ra data của từng dòng.

Dòng 3: mysqli_fetch_assoc($result) sẽ trả đổ dữ liệu của 1 dòng trong Employee vào mảng $row.

Dòng 5: Xuất các thông tin ra màn hình.

Update

Viết câu truy vấn update lương cho nhân viên có Id = 1 lên 10.000.000.

$sqlUpdate = "UPDATE Employee SET Salary= 10000000 WHERE Id = 1";

Thực thi câu truy vấn update

mysqli_query($conn, $sqlUpdate);

Delete

Câu truy vấn xóa nhân viên có id = 1 ra khỏi table Employee.

$sqlDelte = "DELETE FROM Employee WHERE id = 1";

Thực thi câu truy vấn để thực hiện delete.

mysqli_query($conn, $sqlDelte);

Close Connect

Sau khi thao tác xong với database. Các bạn nhớ đóng connect.

mysqli_close($conn);

Lời kết

Với các thao tác mà tôi đã hướng dẫn chi tiết trên đây, tôi tin rằng các bạn có thể vận dụng được nó một cách dễ dàng. Những thao tác này hoàn toàn không khó mà phụ thuộc và khả năng viết câu truy vấn SQL của các bạn. Nếu có bất cứ thắc mắc nào các bạn có thể liên hệ với tác giả Nguyễn Nghĩa để được giải đáp thắc mắc sớm nhất.

THẢO LUẬN
ĐÓNG