Ao tentar inserir um Livro Físico, o SQL reclama sintaxe inválida, por ter objetos vazios. É preciso fazer algum tratamento para vazios que talvez eu tenha perdido pelo caminho?
ERRO: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '', 'LivroFisico', '', '')' at line 5.
Como ficou o echo na query: insert into produtos (nome, preco, descricao, categoria_id, usado, isbn, tipoProduto, waterMark, taxaImpressao) values ('Nome do Livro', 3, 'Descricao do Livro', 1, , '', 'LivroFisico', '', '')
function insereProdutos(Produto $produto) {
$isbn = "";
if($produto->temIsbn()) {
$isbn = $produto->getIsbn();
}
$waterMark = "";
if($produto->temWaterMark()) {
$waterMark = $produto->getWaterMark();
}
$taxaImpressao = "";
if($produto->temTaxaImpressao()) {
$taxaImpressao = $produto->getTaxaImpressao();
}
$tipoProduto = get_class($produto);
$query = "insert into produtos (nome, preco, descricao, categoria_id,
usado, isbn, tipoProduto, waterMark, taxaImpressao)
values ('{$produto->getNome()}', {$produto->getPreco()},
'{$produto->getDescricao()}', {$produto->getCategoria()->getId()},
{$produto->isUsado()}, '{$isbn}', '{$tipoProduto}',
'{$waterMark}', '{$taxaImpressao}')";
echo $query;
return mysqli_query($this->conexao, $query);
}