public static function getInstance($id, PDO $pdo) { // ФАБРИКА которая находит товар в БД по id и создаёт обьект нужного типа $stmt = $pdo->prepare("SELECT * FROM products WHERE id=?"); // подготавливаем выборку по id $result = $stmt->execute([$id]); // выполняем $row = $stmt->fetch(); // получаем результат if (empty($row)) { // проверяем не пуста ли строка return null; } if ($row['type'] == "book") { // проверяем "тип" $product = new BookProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['numpages']); } else { if ($row['type'] == "cd") { // проверяем "тип" $product = new CDProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['playlength']); } else { // если неизвесный "тип", то применяем родительский класс ShopProduct $product = new ShopProduct($row['title'], $row['firstname'], $row['mainname'], $row['price']); } } $product->setId($row['id']); // назначаем id согласно id из БД $product->setDiscount($row['discount']); // назначаем скидку согласно скидке из БД return $product; // возвращаем полученый обьект нужного нам класса }
public static function getInstance($id, PDO $pdo) { $stmt = $pdo->prepare("select * from products WHERE id = ?"); $result = $stmt->execute(array($id)); $row = $stmt->fetch(); if (empty($row)) { return null; } if ($row['type'] == "book") { $product = new BookProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['numpages']); } elseif ($row['type'] == "cd") { $product = new CDProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['playlength']); } else { $product = new ShopProduct($row['title'], $row['firstname'], $row['mainname'], $row['price']); } $product->setId($row['id']); $product->setDiscount($row['discount']); return $product; }
public static function getInstance($id, PDO $pdo) { $query = "select * from products where id='{$id}'"; $stmt = $pdo->query($query); $row = $stmt->fetch(); if (empty($row)) { return null; } if ($row['type'] == "book") { $product = new BookProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['numpages']); } if ($row['type'] == "cd") { $product = new CdProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['playlength']); } else { $product = new ShopProduct($row['title'], $row['firstname'], $row['mainname'], $row['price']); } $product->setID($row['id']); $product->setDiscount($row['discount']); return $product; }