ООП PDO Запрос null - PullRequest
       3

ООП PDO Запрос null

0 голосов
/ 04 июля 2018
<?php
class User {
  private $conn;
  private $table_name = "users";

  public $id;
  public $firstname;

  public function __construct($db){
      $this->conn = $db;
  }

   public function create(){
     $query = "INSERT INTO
              " . $this->table_name . "
              SET
              firstname = :firstname";

        $stmt = $this->conn->query($query);

        $this->firstname=htmlspecialchars(strip_tags($this->firstname));

        $stmt->bindParam(':firstname', $this->firstname);

        if($stmt->execute()){
          return true;
        }else {
          $this->showError($stmt);
          return false;
        }
    }
}

Uncaught Error: вызов функции-члена query () для null

Почему мой запрос NULL?


Когда я делаю var_dump для использования, все идет хорошо, но я не понимаю, почему мой запрос нулевой

1 Ответ

0 голосов
/ 04 июля 2018

Вы работаете

$stmt = $this->conn->query($query);

Это неверно и завершится ошибкой, так как запрос имеет привязываемый параметр, т.е. firstname = :firstname

Ты должен бежать

Prepare
bindParam
execute

В таком порядке

Также этот запрос

$query = "INSERT INTO" . $this->table_name . "
            SET firstname = :firstname";

Когда он все-таки запустится, изменится firstname в каждой строке в этой таблице на то, что находится в $this->firstname

И не ясно, что вы фактически указали значение ИЛИ в свойстве $conn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...