Kết nối PHP với MySQL là bước quan trọng và gần như là bắt buộc khi muốn tạo các ứng dụng web có khả năng tương tác, xử lý thông tin từ người dùng. Bài viết này sẽ hướng dẫn các bước cơ bản từ việc kết nối PHP với MySQL, lưu trữ và truy xuất dữ liệu, cho đến việc bảo mật ứng dụng.

1. Thiết lập môi trường phát triển

Trước khi bắt đầu, bạn cần cài đặt các công cụ cần thiết để phát triển ứng dụng PHP với MySQL:

  • XAMPP hoặc WAMP: Đây là các gói phần mềm giúp bạn cài đặt Apache, PHP và MySQL trên máy tính một cách dễ dàng.
  • Trình soạn thảo mã nguồn: Bạn có thể sử dụng các trình soạn thảo như Visual Studio Code, Sublime Text, hoặc PHPStorm để viết mã PHP.

Sau khi cài đặt XAMPP/WAMP, bạn cần khởi động Apache và MySQL từ bảng điều khiển của phần mềm. Tiếp theo, tạo một thư mục mới trong thư mục htdocs của XAMPP để chứa các tệp dự án của bạn.

2. kết nối PHP với MySQL

Để kết nối PHP với MySQL, bạn sử dụng hàm mysqli_connect() hoặc PDO (PHP Data Objects). Trong ví dụ dưới đây, chúng ta sẽ sử dụng mysqli_connect():

PHP
<?php
$servername = "localhost";
$username = "root";
$password = "";
$database = "my_database";

// Kết nối đến MySQL
$conn = mysqli_connect($servername, $username, $password, $database);

// Kiểm tra kết nối
if (!$conn) {
    die("Kết nối thất bại: " . mysqli_connect_error());
}
echo "Kết nối thành công!";
?>

Trong đoạn mã trên, bạn cần thay thế my_database bằng tên cơ sở dữ liệu mà bạn đã tạo trong MySQL.

3. Tạo cơ sở dữ liệu và bảng

Để tạo cơ sở dữ liệu và bảng trong MySQL, bạn có thể sử dụng các câu lệnh SQL trực tiếp thông qua giao diện dòng lệnh MySQL hoặc qua công cụ quản lý như phpMyAdmin.

Tạo cơ sở dữ liệu:

Đầu tiên, bạn cần tạo một cơ sở dữ liệu mới để lưu trữ dữ liệu ứng dụng của mình:

SQL
CREATE DATABASE my_database;

Sau khi cơ sở dữ liệu được tạo, bạn cần sử dụng lệnh USE để chuyển sang cơ sở dữ liệu mới:

SQL
USE my_database;
Tạo bảng:

Tiếp theo, bạn sẽ tạo một bảng để lưu trữ thông tin người dùng. Ví dụ, bảng Users có các cột id, username, email, và reg_date:

SQL
CREATE TABLE Users (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
);

Trong bảng này:

  • id: là khóa chính, tự động tăng cho mỗi bản ghi mới.
  • username: lưu trữ tên người dùng, với độ dài tối đa 30 ký tự.
  • email: lưu trữ địa chỉ email người dùng.
  • reg_date: tự động lưu lại thời gian tạo bản ghi.

Sau khi thực hiện các lệnh trên, bạn sẽ có một cơ sở dữ liệu với bảng Users đã sẵn sàng để sử dụng trong các ứng dụng web với PHP.

4. Chèn dữ liệu vào cơ sở dữ liệu

Sau khi tạo bảng, bạn có thể chèn dữ liệu vào đó bằng cách sử dụng câu lệnh SQL INSERT INTO. Ví dụ dưới đây sẽ chèn một người dùng mới vào bảng Users:

PHP
<?php
$sql = "INSERT INTO Users (username, email)
VALUES ('JohnDoe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
    echo "Dữ liệu được chèn thành công!";
} else {
    echo "Lỗi: " . $sql . "<br>" . mysqli_error($conn);
}
?>

5. Truy vấn và hiển thị dữ liệu

Để lấy dữ liệu từ cơ sở dữ liệu và hiển thị trên trang web, bạn sử dụng câu lệnh SELECT và vòng lặp để xử lý kết quả:

PHP
<?php
$sql = "SELECT id, username, email FROM Users";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "ID: " . $row["id"]. " - Tên: " . $row["username"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "Không có kết quả nào";
}
?>

Đoạn mã trên sẽ truy vấn tất cả các bản ghi trong bảng Users và hiển thị thông tin về ID, tên người dùng và email của họ.

6. Cập nhật và xóa dữ liệu

Bạn có thể cập nhật hoặc xóa dữ liệu trong bảng bằng cách sử dụng câu lệnh UPDATEDELETE:

  • Cập nhật dữ liệu:
PHP
<?php
$sql = "UPDATE Users SET email='newemail@example.com' WHERE id=1";

if (mysqli_query($conn, $sql)) {
    echo "Bản ghi được cập nhật thành công!";
} else {
    echo "Lỗi khi cập nhật bản ghi: " . mysqli_error($conn);
}
?>
  • Xóa dữ liệu:
PHP
<?php
$sql = "DELETE FROM Users WHERE id=1";

if (mysqli_query($conn, $sql)) {
    echo "Bản ghi được xóa thành công!";
} else {
    echo "Lỗi khi xóa bản ghi: " . mysqli_error($conn);
}
?>

7. Bảo mật khi sử dụng MySQL với PHP

Bảo mật là yếu tố quan trọng trong lập trình web. Khi sử dụng PHP và MySQL, bạn cần phải đảm bảo mã của mình không dễ bị tấn công bằng các phương thức như SQL Injection. Một cách đơn giản để bảo vệ ứng dụng là sử dụng câu lệnh chuẩn bị (prepared statements):

PHP
<?php
$stmt = $conn->prepare("INSERT INTO Users (username, email) VALUES (?, ?)");
$stmt->bind_param("ss", $username, $email);

$username = "JaneDoe";
$email = "jane@example.com";
$stmt->execute();

echo "Dữ liệu đã được chèn một cách an toàn!";
$stmt->close();
?>

Prepared statements giúp bảo vệ ứng dụng khỏi các tấn công SQL Injection bằng cách sử dụng các biến thay thế trong câu lệnh SQL.

Nếu bạn đang bắt đầu với PHP và MySQL, bài viết này sẽ cung cấp cho bạn một cái nhìn tổng quan và một số hướng dẫn cơ bản để bắt đầu.


Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *