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();
}
}
?>