Я пытаюсь избавиться от процедурного и перейти к почти полному ООП. Я создал абстрактный класс «Транспортное средство» и создал экземпляр расширенного «Автомобиля».Невозможно вставить в БД из метода объекта
Я написал метод insert(), который вставляет данные в мою базу данных: Я не могу заставить это работать!
вот абстрактный класс:
<?php
abstract class Vehicle
{
private $id;
private $marque;
private $model;
private $imma;
protected function __construct($ma, $mo, $im)
{
$this->marque = $ma;
$this->model = $mo;
$this->imma = $im;
}
public function setMarque($ma)
{
$this->marque = $ma;
}
public function setModel($mo)
{
$this->model = $mo;
}
public function setImma($im)
{
$this->imma = $im;
}
public function getId()
{
return $this->id;
}
public function getMarque()
{
return $this->marque;
}
public function getModel()
{
return $this->model;
}
public function getImma()
{
return $this->imma;
}
public function insert(PDO $bdd, $idA)
{
try{
$bdd->prepare('INSERT INTO vehicle (immatriculation, id_a)
VALUES ("'.$this->imma.'",'.$idA.')')->execute();
}
catch(Exception $e) {
echo '<script>alert("An error has occured, try again...");</script>';
return;
}
$this->id =
$bdd->prepare('SELECT id_vehicle FROM vehicle
WHERE immatriculation="'.$this->imma.'"')->execute();
}
}
1. Вам необходимо получить сообщение об ошибке PDO, но НЕ, как вы это делаете сейчас. Подробнее см. Связанный ответ. 2. Вы неправильно используете подготовленную PDO-инструкцию. [Заполнители должны быть установлены вместо фактических данных в запросе, а данные должны быть выполнены) (https://phpdelusions.net/pdo#prepared) –