×

Thực hiện các truy vấn SQL để thao tác dữ liệu trong PHP

SQL, viết tắt của Structured Query Language, là ngôn ngữ tiêu chuẩn để làm việc với cơ sở dữ liệu. Trong ứng dụng web, PHP thường được kết hợp với SQL để thao tác và quản lý dữ liệu. Bài viết này sẽ hướng dẫn bạn cách sử dụng các truy vấn SQL trong PHP để thực hiện các thao tác cơ bản như thêm, sửa, xoá và truy vấn dữ liệu.

Kết nối tới Cơ sở dữ liệu

Đầu tiên, bạn cần kết nối tới cơ sở dữ liệu mà mình muốn thao tác. PHP cung cấp nhiều cách để kết nối, nhưng phổ biến nhất là sử dụng MySQLi và PDO (PHP Data Objects).

Sử dụng MySQLi

$servername = "localhost";
$username = "username";
$password = "password";
$database = "database_name";

// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $database);

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

Sử dụng PDO

$servername = "localhost";
$username = "username";
$password = "password";
$database = "database_name";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
    // Đặt chế độ lỗi cho PDO
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Kết nối thành công"; 
} catch(PDOException $e) {
    echo "Kết nối thất bại: " . $e->getMessage();
}

Thực hiện các truy vấn SQL

Thêm dữ liệu (INSERT)

MySQLi
$sql = "INSERT INTO table_name (column1, column2, column3) VALUES ('value1', 'value2', 'value3')";
if ($conn->query($sql) === TRUE) {
    echo "Thêm thành công!";
} else {
    echo "Lỗi: " . $sql . "<br>" . $conn->error;
}
PDO
try {
    $sql = "INSERT INTO table_name (column1, column2, column3) VALUES ('value1', 'value2', 'value3')";
    $conn->exec($sql);
    echo "Thêm thành công!";
} catch(PDOException $e) {
    echo "Lỗi: " . $e->getMessage();
}

Sửa dữ liệu (UPDATE)

MySQLi
$sql = "UPDATE table_name SET column1='value1', column2='value2' WHERE id=1";
if ($conn->query($sql) === TRUE) {
    echo "Cập nhật thành công!";
} else {
    echo "Lỗi: " . $sql . "<br>" . $conn->error;
}
PDO
try {
    $sql = "UPDATE table_name SET column1='value1', column2='value2' WHERE id=1";
    $stmt = $conn->prepare($sql);
    $stmt->execute();
    echo "Cập nhật thành công!";
} catch(PDOException $e) {
    echo "Lỗi: " . $e->getMessage();
}

Xoá dữ liệu (DELETE)

MySQLi
$sql = "DELETE FROM table_name WHERE id=1";
if ($conn->query($sql) === TRUE) {
    echo "Xóa thành công!";
} else {
    echo "Lỗi: " . $sql . "<br>" . $conn->error;
}
PDO
try {
    $sql = "DELETE FROM table_name WHERE id=1";
    $stmt = $conn->prepare($sql);
    $stmt->execute();
    echo "Xóa thành công!";
} catch(PDOException $e) {
    echo "Lỗi: " . $e->getMessage();
}

Truy vấn dữ liệu (SELECT)

MySQLi
$sql = "SELECT column1, column2 FROM table_name";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "column1: " . $row["column1"]. " - column2: " . $row["column2"]. "<br>";
    }
} else {
    echo "0 kết quả";
}
PDO
try {
    $sql = "SELECT column1, column2 FROM table_name";
    $stmt = $conn->prepare($sql);
    $stmt->execute();

    // Thiết lập chế độ fetch
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    foreach($stmt->fetchAll() as $row) {
        echo "column1: " . $row["column1"]. " - column2: " . $row["column2"]. "<br>";
    }
} catch(PDOException $e) {
    echo "Lỗi: " . $e->getMessage();
}

Kết luận

Việc thực hiện các truy vấn SQL trong PHP là một kỹ năng quan trọng giúp bạn có thể thao tác và quản lý dữ liệu một cách hiệu quả. Với hai phương pháp MySQLi và PDO, bạn có thể lựa chọn cách nào phù hợp nhất với dự án của bạn. Hãy chắc chắn rằng bạn đã xử lý các lỗi có thể xảy ra để đảm bảo ứng dụng của bạn hoạt động ổn định.

Comments