2016-04-25 3 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

'VALUES (: catName = catName)', который должен читаться как 'VALUES (: catName)' и с использованием исключений бы вызвало ошибку синтаксиса. http://php.net/manual/en/pdo.error-handling.php - то, что вы используете сейчас, является синтаксисом UPDATE, а не INSERT. –

+0

Ну, я пробовал, но он, похоже, не работал –

+0

ах хорошо, что парень внизу; отправил ответ, спросите его. Я должен буду держаться подальше от этой петли. –

ответ

2

Вы не являетесь обязательными параметрами.

Исправленный код:

$query = $connect->prepare("INSERT INTO category (catName) VALUES (:catName)"); 
$query->bindParam(':catName', $_POST['catName'] ,PDO::PARAM_STR); 
+0

[да, я сказал, что 6 минут. до этого] (http://stackoverflow.com/questions/36840118/how-to-insert-a-query-within-a-class#comment61250026_36840118). Возможно, OP отвечает только на ответы, а не на комментарии. Я считаю, что мое было лучшим объяснением. –

+0

Да, Fred-ii-, вы объяснили, что хорошо. Нет сомнения. Но, к моему малому знанию, я нашел там ошибку. Поэтому я ответил. – Pupil

+0

@Pupil thx для вашего ответа, но он не работает. Я не понимаю, почему он не работает. –

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