What are the best practices for error handling and exception catching in PHP, especially when dealing with database operations like deletions?

When dealing with database operations like deletions in PHP, it is important to implement proper error handling and exception catching to ensure the reliability and security of your application. One best practice is to use try-catch blocks to catch any potential exceptions that may occur during database operations and handle them appropriately, such as logging the error or displaying a user-friendly message. Additionally, you should always sanitize user input to prevent SQL injection attacks and validate data before performing any database operations.

try {
    // Perform database deletion operation
    $stmt = $pdo->prepare("DELETE FROM table_name WHERE id = :id");
    $stmt->bindParam(':id', $id);
    $stmt->execute();
    
    // Check if deletion was successful
    if ($stmt->rowCount() > 0) {
        echo "Record deleted successfully";
    } else {
        echo "No records deleted";
    }
} catch (PDOException $e) {
    // Handle database errors
    echo "Error deleting record: " . $e->getMessage();
}