7. Truyền tham số sử dụng Prepared Statements trong lập trình PHP MySQL

Trong lập trình PHP MySQL, Sử dụng Prepared Statements trong PHP MySQL giúp bảo vệ ứng dụng của bạn khỏi các cuộc tấn công SQL Injection. Dưới đây là ví dụ về cách truyền tham số sử dụng Prepared Statements trong lập trình PHP MySQL:

php
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

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

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

// Dữ liệu cần chèn
$data = array(
    array('John', 'Doe', '[email protected]'),
    array('Jane', 'Smith', '[email protected]'),
    array('Michael', 'Johnson', '[email protected]')
);

// Chuẩn bị truy vấn sử dụng Prepared Statement
$sql = "INSERT INTO your_table (first_name, last_name, email) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);

// Kiểm tra lỗi trong việc chuẩn bị truy vấn
if (!$stmt) {
    die("Lỗi chuẩn bị truy vấn: " . $conn->error);
}

// Buộc các tham số vào truy vấn và thực hiện lặp để chèn dữ liệu
foreach ($data as $row) {
    $firstName = $row[0];
    $lastName = $row[1];
    $email = $row[2];
    
    // Buộc các tham số vào truy vấn
    $stmt->bind_param("sss", $firstName, $lastName, $email);

    if ($stmt->execute()) {
        echo "Dữ liệu đã được chèn thành công<br>";
    } else {
        echo "Lỗi khi chèn dữ liệu: " . $stmt->error . "<br>";
    }
}

// Đóng truy vấn và kết nối
$stmt->close();
$conn->close();
?>

Trong ví dụ trên, chúng ta sử dụng Placeholder “?” để đại diện cho các tham số trong truy vấn SQL. Sau đó, chúng ta sử dụng phương thức bind_param của Prepared Statement để gán giá trị tham số cho các placeholder. Các kiểu dữ liệu của các tham số được xác định bởi các ký tự trong chuỗi format của hàm bind_param.

Lưu ý rằng bạn cần phải thay đổi các giá trị như ‘your_username’, ‘your_password’, ‘your_database’, ‘your_table’ và cấu trúc dữ liệu phù hợp với cơ sở dữ liệu của bạn.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top