Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

SQL Injection

Apliquei SQL injection para cada variável, está funcionando perfeitamente. No entanto gostaria de saber uma melhor maneira para fazer isso sem ter que fazer variável por variável.

function insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado){

$nome = mysqli_real_escape_string($conexao, $nome); $preco = mysqli_real_escape_string($conexao, $preco); $descricao = mysqli_real_escape_string($conexao, $descricao); $categoria_id=mysqli_real_escape_string($conexao, $categoria_id); $usado = mysqli_real_escape_string($conexao, $usado);

$query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('{$nome}',{$preco},'{$descricao}','{$categoria_id}', {$usado})";

return mysqli_query($conexao, $query); }

1 resposta
solução!

Olá Vinicius, basta colocar os campos que quer em um array e fazer um foreach...

$campos = array($nome, $preco, $descricao);
$inputs = array();
foreach ($campos as $campo) {
        $inputs[$campo] = mysqli_real_escape_string($conexao, $campo);
}

Aí na query:

$query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('$inputs[$nome]',$inputs[$preco],'$inputs[$descricao]',{$categoria_id},{$usado})";

Ao menos para mim, funcionou!