Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao atualizar pets

Ao tentar atualizar os pets (AULA 05 - 02 - Atualizando e deletando). Estou recebendo o seguinte erro:

{
  "data": null,
  "errors": [
    {
      "message": "ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM Clientes WHERE id=1' at line 1",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "atualizarPet"
      ]
    }
  ]
}

OK eu sei que eu é um erro de syntaxe do MySQL, porém aparentemente meu código está igual mostrado no vídeo:

  atualiza(novoItem) {
    const { id, nome, donoId, tipo, observacoes } = novoItem

    const sql = `UPDATE Pets SET nome='${nome}', donoId=${donoId}, tipo='${tipo}', observacoes='${observacoes}' WHERE id=${id}; SELECT * FROM Clientes WHERE id=${donoId}`

    return executaQuery(sql).then(dados => {
      const dono = dados[1][0]

      return ({
        ...novoItem,
        dono
      })
    })
  }

Alguém consegue perceber algo que de errado ?

1 resposta
solução!

Resolvido ! O problema é que a solução só é exibida na parte 03 da aula 05 (mesma aula).

Segue abaixo o que soluciona o problema, edite o arquivo conexao.js e acrescente a linha multipleStatements: true que faz com que o MySQL passe a aceitar a execução de múltiplas queries.

const conexao = mysql.createConnection({
  host: '172.19.0.2',
  port: 3306,
  user: 'root',
  password: 'root',
  database: 'agenda-petshop',
  multipleStatements: true
})

Infelizmente não consegui comentar no vídeo mas fica aí uma sugestão de melhoria. Colocar em ordem essa parte do curso.

Ou ainda melhor, parar de usar essas queries bizarras e fazer inner join.