2016-04-25 10 views
-1

私は、すべてが満たされているかどうかチェックしたいクラスに取り組んでいます。すべてが満たされてデータベースに挿入されている場合、私はクラス内に挿入する方法について固執していますので、 。私はこの問題のエラーは一度もありませんでした。クラス内にクエリを挿入する方法は?

<?php 


class clsCatCheck 
{ 

    private $catName; 

    public function __construct($catName) 
    { 
     $this->setCatName($catName); 
    } 

    public function setCatName($catName) 
    { 
     $connect = new PDO('mysql:host=hostname;dbname=dbname', "username", "password"); 

      $select = $connect->prepare('SELECT * FROM category'); 
      $row = $select->fetch(); 

      if (isset($_POST['addCat'])) { 
       if (empty($_POST['catName'])) { 
        throw new Exception('Geen categorienaam is ingevuld<br />'); 
       } 
       //if (strlen($_POST['catName'] <= 4)) { 
        // throw new Exception('De categorienaam moet minimaal 4 letters of langer zijn<br />'); 
       //} 
       if ($_POST['catName'] == $row[1]) { 
        throw new Exception('Deze categorienaam bestaat al<br />'); 
       } 
      } 
      else { 
       $query = $connect->prepare("INSERT INTO category (catName) VALUES (:catName = catName)"); 
       $query->bindParam(':catName', $_POST['catName'] ,PDO::PARAM_STR); 
       $query->execute(); 
      } 

     $this->catName = $catName; 
    } 

    public function getCatName() 
    { 
     return $this->catName; 
    } 
} 

すでに助けてくれてありがとう:ここ

はコードがあります。 私のコードをもっと欲しければ、尋ねてください。

+0

$query = $connect->prepare("INSERT INTO category (catName) VALUES (:catName)"); $query->bindParam(':catName', $_POST['catName'] ,PDO::PARAM_STR); 
'VALUES(:catName = catName)' '値として読むべきである(:catName)'と例外を使用して、構文エラーを引き起こしたであろう。 http://php.net/manual/en/pdo.error-handling.php - 現在使用しているのはINSERTではなくUPDATEの構文です。 –

+0

さて、私はしようとしましたが、動作していないようです。 –

+0

ああ、答えを掲示して、彼に尋ねなさい。私はこのループから抜け出す必要があります。 –

答えて

2

パラメータを正しくバインドしていません。

修正コード:

+0

[はい、私は6分と言った。これに先立って](http://stackoverflow.com/questions/36840118/how-to-insert-a-query-within-a-a-class #comment61250026_36840118)。たぶんOPは回答だけに答えてコメントではないでしょう。私は私がより良い説明だったと信じています。 –

+0

はい@ Fred-ii-、あなたは間違いなくうまく説明しました。間違いない。しかし、私の小さな知識には、そこに何らかの誤りがあることが分かりました。したがって、私は答えを掲載しました。 – Pupil

+0

あなたの答えは@Pupil thxですが、動作していません。私はなぜそれが動作していないわけではありません。 –