2016-03-29 3 views
-1

Я пытаюсь избавиться от процедурного и перейти к почти полному ООП. Я создал абстрактный класс «Транспортное средство» и создал экземпляр расширенного «Автомобиля».Невозможно вставить в БД из метода объекта

Я написал метод 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(); 
    } 


} 
+0

1. Вам необходимо получить сообщение об ошибке PDO, но НЕ, как вы это делаете сейчас. Подробнее см. Связанный ответ. 2. Вы неправильно используете подготовленную PDO-инструкцию. [Заполнители должны быть установлены вместо фактических данных в запросе, а данные должны быть выполнены) (https://phpdelusions.net/pdo#prepared) –

ответ

-1

Try:.

$ bdd-> подготовить ("INSERT INTO автомобиля (immatriculation, id_a) VALUES ('" $ this-> МАЗМ .. " ''" $ IDA "');") -> Execute().

Если это не поможет, пожалуйста, сообщите мне об ошибке.

Смежные вопросы