How can unique keys be used effectively in PHP to prevent duplicate entries when inserting data into a database?

To prevent duplicate entries when inserting data into a database in PHP, you can use unique keys in the database schema. Unique keys ensure that a specific column or combination of columns must have unique values, preventing duplicate entries. When inserting data, you can catch any potential duplicate entry errors and handle them accordingly.

<?php

// Assume we have a database connection established

// Define a table with a unique key constraint on the 'email' column
$sql = "CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(50) UNIQUE,
    password VARCHAR(255)
)";
$conn->query($sql);

// Insert data into the table, catching any duplicate entry errors
$name = "John Doe";
$email = "johndoe@example.com";
$password = "securepassword";

try {
    $sql = "INSERT INTO users (name, email, password) VALUES ('$name', '$email', '$password')";
    $conn->query($sql);
    echo "Data inserted successfully!";
} catch (PDOException $e) {
    if ($e->errorInfo[1] == 1062) {
        echo "Duplicate entry found for email: $email";
    } else {
        echo "Error inserting data: " . $e->getMessage();
    }
}

?>