Todas as funções do banco de dados estudadas até aqui estão funcionando normalmente: inserir e carregar categorias. Porém, a função que atualiza o banco de dados no arquivo Categoria.php não está funcionando quando eu a chamo no arquivo categorias-editar-post.php.
Os parâmetros enviados via post, id e nome, funcionam corretamente, inclusive quando eu instancio a classe Categoria e utilizo o var_dump, verifico que o novo parâmetro nome foi instanciado no atributo nome da classe, mas mesmo assim o método atualizar()
da classe Categoria não funciona. Segue o código do arquivo categorias-editar-post.php:
<?php
require_once 'classes/Categoria.php';
//ini_set('display_errors', 1);
//ini_set('display_startup_errors', 1);
//error_reporting(E_ALL);
$id = $_POST['id'];
$nome = $_POST['nome'];
$categoria = new Categoria($id);
$categoria->nome = $nome;
var_dump($categoria); //código está aqui para testar se o objeto estava sendo instanciado corretamente
$categoria->atualizar();
header("Location: categorias.php");
Eu tenho certeza absoluta que o mesmo está certo, pois cheguei ao ponto de copiar a query, colar no terminal e depois substituir os atributos concatenados do código. Segue o código do método:
public function atualizar()
{
$query = "UPDATE categorias set nome = '".$this->nome."' where id = ".$this->id;
$conexao = Conexao::pegarConexao();
$conexao = exec($query);
}
Por fim, acompanhando o log do servidor php, verifiquei que toda vez que o arquivo categorias-editar-post.php faz a chamada para o método atualizar()
o servidor fornece a seguinte resposta: sh: 1: UPDATE: not found
Se alguém souber porque o método não está funcionando, me ajude por favor!