Prezados,
A inclusão funciona mas quando tento alterar diz que não foi instanciado na linha if(alteraProduto($conexao, $produto)) {
Já tentei colocar Produto $produto e continua o erro.
Descrição exata do erro: Catchable fatal error: Argument 2 passed to alteraProduto() must be an instance of Produto, null given, called in C:\wamp\www\aula01\loja\altera-produto.php on line 20 and defined in C:\wamp\www\aula01\loja\banco-produto.php on line 27
banco-produto.php
function alteraProduto($conexao, Produto $produto) {
$query = "update produtos set nome = '{$produto->nome}',
preco = {$produto->preco},
descricao = '{$produto->descricao}',
categoria_id= {$produto->categoria_id},
usado = {$produto->usado} where id = '{$produto->id}'";
return mysqli_query($conexao, $query);
}
altera-produto.php
<?php
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("class/Produto.php");
$produto = new Produto();
$produto->id = $_POST['id'];
$produto->nome = $_POST['nome'];
$produto->preco = $_POST['preco'];
$produto->descricao = $_POST['descricao'];
$produto->categoria_id = $_POST['categoria_id'];
if(array_key_exists('usado', $_POST)) {
$produto->usado = "true";
} else {
$produto->usado = "false";
}
if(alteraProduto($conexao, $produto)) {
?>
<p class="text-success">O produto <?= $produto->nome ?>, <?= $produto->preco ?> foi alterado.</p>
<?php
} else {
$msg = mysqli_error($conexao);
?>
<p class="text-danger">O produto <?= $produto->nome ?> não foi alterado: <?= $msg?></p>
<?php
}
?>
<?php include("rodape.php"); ?>