Call to a member function execute() on null - PHP PDO

0 respostas
mysqlphppdo
V

Boa noite galera.

Estou vendo as vídeo aulas da UpInside do curso WS PHP - Orientação à objetos.
Nas vídeo aulas, ainda se utilizava o PHP 5, e estamos na versão 7(notei algumas poucas diferenças).
O problema é que ao executar o Update, estou obtendo um erro, na qual não encontro solução.

Erro:

Fatal error: Uncaught Error: Call to a member function execute() on null in C:\wamp64\www\cursos\ws_php\modulos\07-Php-Data-Object_app\Conn\Update.class.php on line 71
Error: Call to a member function execute() on null in C:\wamp64\www\cursos\ws_php\modulos\07-Php-Data-Object_app\Conn\Update.class.php on line 71

CÓDIGO:

<?php /** * Update.class * Classe responsável por atualizações genéricas no banco de dados! * * @copyright (c) 2018, Victor Lucas */ class Update extends Conn { private $tabela; private $dados; private $termos; private $places; private $result; /** @var PDOStatement */ private $update; /** @var PDO */ private $conn; public function exeUpdate($tabela, array $dados, $termos, $parseString) { $this->tabela = (string) $tabela; $this->dados = $dados; $this->termos = (string) $termos; parse_str($parseString, $this->places); $this->getSyntax(); $this->executa(); } public function getResult() { return $this->result; } public function getRowCount() { return $this->update->rowCount(); } public function setPlaces($parseString) { parse_str($parseString, $this->places); $this->executa(); } /** * ************************************************ * ********** PRIVATE METHODS ********** * ************************************************ */ //Obtém o PDO e Prepara a query private function connect() { $this->conn = parent::getConn(); $this->updade = $this->conn->prepare($this->update); } //Cria a sintaxe da query para Prepared Statements private function getSyntax() { foreach ($this->dados as $key): $places[] = $key . ' = :' . $key; endforeach; $places = implode(', ', $places); $this->updade = "UPDATE {$this->tabela} SET {$places} {$this->termos}"; } //Obtém a Conexão e a Syntax, executa a query private function executa() { $this->connect(); try { Linha 71: **$this->update->execute(array_merge($this->dados, $this->places));** $this->result = true; } catch (Exception $ex) { $this->result = null; WSErro("Erro ao atualizar: {$e->getMessage()}", $e->getCode()); } } } Já tentei de todas as formas, porém não consigo compreender.
Criado 30 de novembro de 2018
Respostas 0
Participantes 1