How can PHP developers efficiently handle multiple products and their corresponding data in database queries without excessive code duplication?

To efficiently handle multiple products and their corresponding data in database queries without excessive code duplication, PHP developers can utilize object-oriented programming principles such as inheritance and polymorphism. By creating a base class for products with common properties and methods, and then extending this class for specific product types, developers can write reusable code for database queries. This approach helps in reducing redundancy and promoting maintainability of the codebase.

class Product {
    protected $tableName;

    public function __construct($tableName) {
        $this->tableName = $tableName;
    }

    public function getAllProducts() {
        // Database query to fetch all products from $this->tableName
    }

    // Other common methods for products
}

class Book extends Product {
    public function __construct() {
        parent::__construct('books');
    }

    // Specific methods for books
}

class Electronic extends Product {
    public function __construct() {
        parent::__construct('electronics');
    }

    // Specific methods for electronics
}

// Example usage
$book = new Book();
$books = $book->getAllProducts();

$electronic = new Electronic();
$electronics = $electronic->getAllProducts();