What potential pitfalls should be considered when checking for existing entries in a MySQL database before inserting new ones in PHP?

When checking for existing entries in a MySQL database before inserting new ones in PHP, potential pitfalls to consider include race conditions where another process inserts a conflicting entry between the check and the insert, leading to duplicate entries. To avoid this, you can use a unique index in the database to enforce uniqueness and handle any potential errors that may arise from inserting duplicate entries.

// Check if entry already exists
$query = "SELECT COUNT(*) FROM table WHERE column = :value";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':value', $value);
$stmt->execute();
$count = $stmt->fetchColumn();

if ($count == 0) {
    // Insert new entry
    $insertQuery = "INSERT INTO table (column) VALUES (:value)";
    $insertStmt = $pdo->prepare($insertQuery);
    $insertStmt->bindParam(':value', $value);
    $insertStmt->execute();
} else {
    // Entry already exists, handle accordingly
    echo "Entry already exists.";
}