1
resposta

Não consigo atualizar os dados

Olá pessoal, Estou usando o MariaDB neste curso e não consigo atualizar os dados da tabelas atendimentos, e estou recebendo este erro:

{
    "text": "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''{\\\"cliente\\\":\\\"Liazinha\\\",\\\"pet\\\":\\\"Tikens\\\",\\\"servico\\\":\\\"pentear\\\",\\\"statu...' at line 1",
    "sql": "UPDATE atendimentos SET ? WHERE id = 3 - parameters:[{\"cliente\":\"Liazinha\",\"pet\":\"Tikens\",\"servico\":\"pentear\",\"status\":\"agendado\",\"data\":\"2018-10-24 00:10:00\",\"dataCriacao\":\"2018-10-22 00:10:00\",\"observacoes\":\"dorme na caixa\"},3]",
    "fatal": false,
    "errno": 1064,
    "sqlState": "42000",
    "code": "ER_PARSE_ERROR"
}

Este é o meu método altera da classe Atendimento do pacote models:

//update(patch)
    altera(id, valores, res){
        if (valores.data) {
            valores.data = this.formataData(valores.data)
        }
        if(valores.dataCriacao){
            valores.dataCriacao = this.formataData(valores.dataCriacao)
        }

        const sql = `UPDATE atendimentos SET ? WHERE id = ${id}`

        conexao.query(sql, [valores, id], (erro,resultados) =>{
            if(erro){
                res.status(400).json(erro)
            }else{
                res.status(200).res(resultados)
            }
        })

    }

    formataData(data) {
        return moment(data, 'DD/MM/YYYY').format('YYYY-MM-DD HH:MM:SS')
    }
1 resposta

Boa tarde Irene, tudo bem?

Eu não tenho certeza se é isso, mas o seu problema parece bem semelhante ao que eu tava enfrentando pra criar o meu banco no dbeaver. Pode ser que ele esteja dando erro pra criar a tabela por causa dos datetimes das datas, talvez fosse interessante tentar criar sem ela primeiro e adicionar os datetimes manualmente no teu mariaDB.