5
respostas

Algo aparentemente simples, só uma dúvida sobre aspas simples.

function insereProduto(Produto $produto) {

        $query = "insert into produtos (nome, preco, descricao, categoria_id, usado, isbn, tipoProduto) 
            values ('{$produto->getNome()}', {$produto->getPreco()}, 
                '{$produto->getDescricao()}', {$produto->getCategoria()->getId()}, 
                    {$produto->isUsado()}, '{$produto->getIsbn()}', '{$produto->getTipoProduto()}'
                    )";

Por que nem todos os valores mencionados aqui, não usam aspas simples? Qual a diferença nos tipos que utilizam e nos que não utilizam?

5 respostas

Aspas simples são para valores textuais, como varchar.

'{$produto->getTipoProduto()}'

Mas aqui não entra nenhum valor textual, é um select.

ta entre aspas simples. O tipo é o que?

{$produto->getCategoria()->getId()}, 
                    {$produto->isUsado()}, '{$produto->getIsbn()}', '{$produto->getTipoProduto()}'

Vou reformular a dúvida. Eu realmente não entendi muito bem o motivo de uns não terem aspas simples e outros sim. Sendo que estes itens listados aqui, não são diferentes na aplicação.. 'getCategoria', 'getTipoProduto' são select que possuem opções a serem selecionadas, porém um está com aspas simples e o outro não. 'IsUsado' é um checkbox e o 'getIsbn' é um campo text. Entendo a aspas simples no getIsbn.. mas nos outros?

Opa, não é o select do html que indica a necessidade e sim o tipo da coluna no banco de dados. Se o tipo da coluna não é numérica, em geral vc precisa colocar aspas simples.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software