Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 3 da Aula 9 - Lidando com Selects e Checkboxes

Aparece o seguinte erro: Catchable fatal error: Object of class mysqli could not be converted to string in C:\xampp\htdocs\loja\banco-produto.php on line 16

Códigos - banco-produto.php

<?php
function listaProdutos($conexao) {
    $produtos = array();
    $resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome from produtos as p join categorias as c on p.categoria_id = c.id");

    while($produto = mysqli_fetch_assoc($resultado)) {
        array_push($produtos, $produto);
    }

    return $produtos;

}

function insereProduto($nome, $preco, $descricao, $categoria_id, $usado) {
    $query = "insert into produtos (nome, preco, descricao, categoria_id, usado) 
        values ('{$nome}', {$preco}, '{$descricao}', {$categoria_id}, {$usado})"; //pelo netbeans a linha 16 é essa aqui
    $resultadoDaInsercao = mysqli_query($conexao, $query);
}

function removeProduto($id) {
    $query = "delete from produtos where id = {$id}";
    return mysqli_query($conexao, $query);
}

adiciona-produto.php

<?php include 'cabecalho.php';
include 'conecta.php';
include 'banco-produto.php';
?>
<?php
$nome = $_POST["nome"];
$preco = $_POST["preco"];
$descricao = $_POST['descricao'];
$categoria_id = $_POST['categoria_id'];
if(array_key_exists('usado', $_POST)) {
    $usado = "true";
} else {
    $usado = "false";
}

if(insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado)) {
?>
<p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php
} else {
    $msg = mysqli_error($conexao);
?>
<p class="alert-danger">O produto <? = $nome; ?> não foi adicionado: <?= $msg ?></p>
<?php
}
?>
<?php include 'rodape.php'; ?>

O código que eu estava fazendo seguindo os vídeo deu esse mesmo problema. Então apaguei ele e segui o código do material da explicação, e o mesmo erro se repetiu.

1 resposta
solução!

Gabriel, tanto na função insere produto quanto na remove produto você está chamando $conexao, porem você não colocou como parâmetro.