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

Método query() ou prepare() e execute() ?

Geralmente, e diferentemente da aula, quando faço um SELECT usando PDO não uso o método query da classe. Geralmente faço o seguinte:


$sql1 = "SELECT * FROM produtos WHERE tipo = ?";
$statement = $pdo->prepare($sql1);
$statement->bindValue(1, "Café");
$statement->execute();
$produtosCafe = $statement->fetchAll(PDO::FETCH_ASSOC);

A minha dúvida é se estou fazendo o correto. Meu código está seguro? É uma boa prática? É obrigatório usar o método query da classe PDO?

1 resposta
solução!

Oii, a forma como você fez está correta. É uma boa prática sim.

Sobre o método query e o método prepare:

  • Quando você usa query, a consulta SQL é executada imediatamente.
  • Quando você usa prepare, você vai "preparar" uma consulta antes de enviá-la ao banco de dados, isso é útil para evitar ataques de SQL Injection, pois os parâmetros são tratados como dados separados da consulta SQL.

No exemplo do curso eu usei query em um cenário onde eu precisava realizar apenas uma busca ao banco, eu não precisaria passar nenhum parâmetro para esta consulta :)

Espero ter ajudado e bons estudos :)