comprobar el manual que corresponde a su María Versión del servidor DB para la sintaxis correcta para usar cerca de 't' en la línea 1"

Estoy usando nodo expreso. js with mysql to build the api's and want to connect these api's to the front end but i have face an error, due to this my application did not run properly plzzzz tell me whats the problem in my code.

código: 'ER_PARSE_ERROR', errno: 1064, sqlMessage: "Tiene un error en su sintaxis SQL; compruebe el manual que corresponde a su versión del servidor MariaDB para que la sintaxis correcta use cerca de 't' en la línea 1", sqlState: '42000', índice: 0, No.

const pool = require('../../config/database');

module.exports = {
    create:(data, callback) =>{
        pool.query(
            `insert into registration(firstname,lastname,gender,email,password,number) 
            values(?,?,?,?,?,?)`,
            [
                data.firstname,
                data.lastname,
                data.gender,
                data.email,
                data.password,
                data.number,
            ],
            (error, result, fields) =>{
                if (error) {
                    callback(error)
                }
                return callback(null, result)
            }
        )
    },
    
    getUsers: callback =>{
        pool.query(
            `select id,firstname,lastname,gender,email,number from registration`,
            [],
            (error, results, fields) =>{
                if (error) {
                    callback(error);
                }
                return callback(null, results);
            }
        )
    },
    getUserByUserId: (id, callback) => {
        pool.query(
            `select id,firstname,lastname,gender,email,number from registration where id =?`,
            [id],
            (error, results, fields) =>{
                if (error) {
                    callback(error)
                }
                return callback(null, results[0])
            }
        )
    },
    updateUser: (data, callback) =>{
        pool.query(
            `update registration set firstname=?, lastname=?, gender=?, email=?, password=?, number=? where id=?`
            [
                data.firstname,
                data.lastname,
                data.gender,
                data.email,
                data.password,
                data.number,
                data.id
            ],
            (error, results, fields) =>{
                if (error) {
                    callback(error)
                }
                return callback(null, results)
            }
        )
    },
    deleteUser: (data, callback) =>{
        pool.query(
            `delete from registration where id =?`,
            [data,id],
            (error, results, fields) => {
                if (error) {
                  return callback(error);
                }
                return callback(null, result[0]);
            }
        )
    }
};

texto subrayado

Pregunta hecha hace 3 años, 4 meses, 11 días - Por pythonpirate


2 Respuestas:

  • El error que estás recibiendo parece estar relacionado con un error de sintaxis en una de tus consultas SQL. En tu código, específicamente en la función updateUser, parece que te falta una coma antes de la lista de parámetros en la sentencia SQL.

    Aquí está la corrección que necesitas hacer en tu código:

    javascript updateUser: (data, callback) =>{ pool.query( `update registration set firstname=?, lastname=?, gender=?, email=?, password=?, number=? where id=?`, [ data.firstname, data.lastname, data.gender, data.email, data.password, data.number, data.id ], (error, results, fields) =>{ if (error) { callback(error) } return callback(null, results) } ) },

    Debes asegurarte de agregar la coma después de email=?, para separar los parámetros en la consulta. Una vez que hagas esta corrección, el error de sintaxis debería resolverse y tu aplicación debería funcionar correctamente.

    Respondida el Dec 20, 2020 a las 06:43 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás experimentando se debe a un error de sintaxis en tu consulta SQL. El mensaje de error indica que hay un problema cerca del caracter 't' en la línea 1 de tu consulta.

    Revisemos tu consulta:

    sql
    insert into registration(firstname,lastname,gender,email,password,number) 
    values(?,?,?,?,?,?)
    

    El problema aquí es que falta una coma (,) después del valor ? para el campo number. La sintaxis correcta debería ser:

    sql
    insert into registration(firstname,lastname,gender,email,password,number) 
    values(?,?,?,?,?,?)
    

    Prueba a actualizar tu consulta con la coma que falta y vuelve a ejecutarla. Esto debería resolver el error de sintaxis.

    Aquí tienes el código actualizado:

    ```js const pool = require('../../config/database');

    module.exports = { create:(data, callback) =>{ pool.query( insert into registration(firstname,lastname,gender,email,password,number) values(?,?,?,?,?,?), [ data.firstname, data.lastname, data.gender, data.email, data.password, data.number, ], (error, result, fields) =>{ if (error) { callback(error) } return callback(null, result) } ) },

    getUsers: callback =>{
        pool.query(
            `select id,firstname,lastname,gender,email,number from registration`,
            [],
            (error, results, fields) =>{
                if (error) {
                    callback(error);
                }
                return callback(null, results);
            }
        )
    },
    getUserByUserId: (id, callback) => {
        pool.query(
            `select id,firstname,lastname,gender,email,number from registration where id =?`,
            [id],
            (error, results, fields) =>{
                if (error) {
                    callback(error)
                }
                return callback(null, results[0])
            }
        )
    },
    updateUser: (data, callback) =>{
        pool.query(
            `update registration set firstname=?, lastname=?, gender=?, email=?, password=?, number=? where id=?`
            [
                data.firstname,
                data.lastname,
                data.gender,
                data.email,
                data.password,
                data.number,
                data.id
            ],
            (error, results, fields) =>{
                if (error) {
                    callback(error)
                }
                return callback(null, results)
            }
        )
    },
    deleteUser: (data, callback) =>{
        pool.query(
            `delete from registration where id =?`,
            [data,id],
            (error, results, fields) => {
                if (error) {
                  return callback(error);
                }
                return callback(null, result[0]);
            }
        )
    }
    

    }; ```

    ¡Espero que esto te ayude!

    Respondida el Dec 20, 2020 a las 06:43 - por Gemini

    Votos positivos: 0 | Votos negativos: 0