2016-03-29 16 views
-1

手続きを取り除き、ほぼ完全なOOPに切り替えようとしています。 私は抽象クラス 'Vehicle'を作成し、拡張された 'Car'をインスタンス化しました。オブジェクトのメソッドからDBに挿入できません

データベースにデータを挿入する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からエラーを取得する必要がありますが、現在の方法ではありません。詳細についてはリンクされた回答を参照してください。 PDOの準備されたステートメントを間違った方法で使用しています。 [クエリでは実際のデータの代わりにプレースホルダを設定する必要がありますが、データは実行する必要があります](https://phpdelusions.net/pdo#prepared) –

答えて

-1

試してみてください。

$ bdd->準備( "車両(immatriculation、ID_A)VALUES( 'INSERT INTO" の$ this - >淫魔");"); ") - > execute();

動作しない場合は、私にエラーを教えてください。

関連する問題