1
resposta

Estou recebendo o erro "unexpected variable '$statement' "

<?php
public function salvarServico(Servi $servico)
{
    $sql = "INSERT INTO servico (nome_servico, duracao_servico, fx_agenda_servico, freq_recomendada_servico, descricao_servico) VALUES (?,?,?,?,?)"
    $statement = $this->pdo->prepare($sql);
    $statement->bindValue(1, $servico->getNomeServico());
    $statement->bindValue(2, $servico->getDuracaoServico());
    $statement->bindValue(3, $servico->getFxAgendaServico());
    $statement->bindValue(4, $servico->getFreqRecomendadaServico());
    $statement->bindValue(5, $servico->getDescricaoServico());
    $statement->execute();]
?>

Estou realizando o curso "PHP e MySQL: criando sua primeira aplicação web" e mesmo escrevendo o codigo exatamente como o professor explicou recebo o erro Parse error: syntax error, unexpected variable "$statement" in //diretoriodoarquivo// on line 17 O que posso fazer para corrigir esse erro?

1 resposta

Olá, Vitor!

Parece que o erro está relacionado à falta de um ponto e vírgula (;) no final da sua string SQL. Em PHP, é importante lembrar que todas as instruções devem terminar com um ponto e vírgula.

Vamos corrigir isso no seu código:

<?php
public function salvarServico(Servi $servico)
{
    $sql = "INSERT INTO servico (nome_servico, duracao_servico, fx_agenda_servico, freq_recomendada_servico, descricao_servico) VALUES (?,?,?,?,?);"
    $statement = $this->pdo->prepare($sql);
    $statement->bindValue(1, $servico->getNomeServico());
    $statement->bindValue(2, $servico->getDuracaoServico());
    $statement->bindValue(3, $servico->getFxAgendaServico());
    $statement->bindValue(4, $servico->getFreqRecomendadaServico());
    $statement->bindValue(5, $servico->getDescricaoServico());
    $statement->execute();
}
?>

Note o ponto e vírgula no final da string SQL. Isso deve resolver o problema do erro "unexpected variable '$statement'".

Espero ter ajudado e bons estudos!