@Vova135798

Как вставить данные в запрос?

Как правильно вставлять данные в переменную $query для создания запроса?
class Product{
    public $title;
    public $price = 0;
    public $description;
    public $category;
    public $image;
    public $active = 0;

    private $query = 'INSERT INTO products (title, price, description, category, image, active) VALUES ("{$this->title}", {$this->price}, "{$this->description}", "{$this->category}", "{$this->image}", {$active})';

    public function __construct($title, $price, $description, $category, $image, $active){
        $this->title = $title;
        $this->price = $price;
        $this->description = $description;
        $this->category = $category;
        $this->image = $image;
        $this->active = $active;
    }

    public function addProduct(){
        
    }
}
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
public $query - это неправильно с десятка разных точек зрения, от архитектуры до простой житейской логики.
Но при этом, если бы данные в запрос передавались правильно, а не как как обычно, то чисто технически это бы сработало

В любом случае, public $query убрать, вместо этого добавить private $db, и в конструктор, соответственно, такой же параметр
public function addProduct(){
    $query = 'INSERT INTO products (title, price, description, category, image, active) VALUES (?,?,?,?,?,?)';
    $stmt = $this->db->prepare($query);
    $stmt->bind_param("ssssss", $this->title, $this->price, $this->description, $this->category, $this->image, $this->$active);
    $stmt->execute();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы