Bài 8: Truy Vấn Database

Bài 8: Truy Vấn Database

Bài trước chúng ta đã làm quen với database. Trong bài này chúng ta sẽ tiếp tục tìm hiểu về cách truy vấn database trong PHP. Kết thúc bài này bạn sẽ:

  • Nắm vững cấu trúc các câu lệnh SQL cơ bản.
  • Biết cách thực thi các truy vấn INSERT, SELECT, UPDATE, DELETE để thao tác với dữ liệu trong Database.
  • Sử dụng PHP để xử lý kết quả trả về từ các truy vấn SQL.

1. Cấu trúc câu lệnh SQL cơ bản:

1.1. Các loại câu lệnh SQL:

  • DML (Data Manipulation Language): Thao tác trực tiếp với dữ liệu.

    • SELECT: Truy vấn dữ liệu.

    • INSERT: Chèn dữ liệu mới.

    • UPDATE: Cập nhật dữ liệu.

    • DELETE: Xóa dữ liệu.

  • DDL (Data Definition Language): Thao tác với cấu trúc database và table.

    • CREATE: Tạo database, table.

    • ALTER: Thay đổi cấu trúc database, table.

    • DROP: Xóa database, table.

1.2. Cấu trúc câu lệnh SQL:

  • SELECT:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

 

  • INSERT:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

 

  • UPDATE:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

 

  • DELETE:

DELETE FROM table_name
WHERE condition;

 

Lưu ý:

  • Các câu lệnh SQL không phân biệt chữ hoa, chữ thường.

  • condition là điều kiện để lọc dữ liệu (ví dụ: id=1, age>18).


2. Cách thực thi truy vấn trong PHP:

  • Sử dụng hàm mysqli_query($conn, $sql) để thực thi câu lệnh SQL:

    • $conn: Biến kết nối đến MySQL đã tạo ở bài trước.

    • $sql: Câu lệnh SQL cần thực thi.

  • Ví dụ:

// Kết nối đến MySQL
// ...

// Thực thi truy vấn INSERT
$sql = "INSERT INTO users (username, password, email) VALUES ('user1', 'password123', '[email protected]')";
if (mysqli_query($conn, $sql)) {
  echo "Thêm dữ liệu thành công!";
} else {
  echo "Lỗi: " . $sql . "<br>" . mysqli_error($conn);
}

// Đóng kết nối
// ...

 


3. Cách xử lý kết quả truy vấn trong PHP:

  • Sử dụng mysqli_fetch_assoc($result) để lấy dữ liệu từ kết quả trả về:

    • $result: Biến chứa kết quả trả về từ mysqli_query().

    • Hàm trả về một mảng kết hợp, mỗi phần tử là một cột dữ liệu.

  • Ví dụ:

// Kết nối đến MySQL
// ...

// Thực thi truy vấn SELECT
$sql = "SELECT id, username, email FROM users";
$result = mysqli_query($conn, $sql);

// Kiểm tra và in kết quả
if (mysqli_num_rows($result) > 0) {
  // Lặp qua từng dòng dữ liệu
  while($row = mysqli_fetch_assoc($result)) {
    echo "ID: " . $row["id"]. " - Username: " . $row["username"]. " - Email: " . $row["email"]. "<br>";
  }
} else {
  echo "Không có dữ liệu.";
}

// Đóng kết nối
// ...

 


Bài tập:

  1. Thực hiện các câu lệnh SQL sau với table users đã tạo ở bài trước:

    • Thêm 3 user mới vào table.

    • Cập nhật email cho user có id=1.

    • Xóa user có id=3.

  2. Tạo một trang PHP hiển thị danh sách tất cả user trong table users.


Lưu ý:

  • Luôn kiểm tra kết quả trả về từ mysqli_query() để phát hiện lỗi.

  • Sử dụng mysqli_error($conn) để lấy thông báo lỗi cụ thể từ MySQL.

  • Bài học này chỉ giới thiệu cách sử dụng cơ bản các câu lệnh SQL. Trong các bài học sau, chúng ta sẽ tìm hiểu thêm về các kỹ thuật truy vấn nâng cao.