Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

306
Vistas
identificador inesperado en una consulta mysql en nodejs

Tengo el siguiente código:

 connection.query("SELECT * FROM accounts_data WHERE new_username LIKE '%" + username + "%';", function (error, results, fields) { });

y me sale el siguiente error

 SELECT * FROM `accounts_data` WHERE `new_username` LIKE '%preloved_bys%' ^^^^^ SyntaxError: Unexpected identifier at wrapSafe (internal/modules/cjs/loader.js:1054:16) at Module._compile (internal/modules/cjs/loader.js:1102:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10) at Module.load (internal/modules/cjs/loader.js:986:32)

¿Qué hay de malo en la consulta? cuando lo ejecuto a través de phpmyadmin funciona bien

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Tengo éxito con hacer lo siguiente:

 var value = 'sc188203395acc255'; connection.query('SELECT * from emp where empid like ?', '%' + value + '%', ...)

Active la depuración en el controlador (pase debug:true como argumento a mysql.createConnection ), no escapa al signo de porcentaje

Una forma más de solucionar este error:

 "SELECT * FROM emp WHERE name empid " + connection.escape('%'+value+'%')

use connection.escape una forma alternativa de hacer las mismas cosas

Una forma más de resolver este error:

reinstale el módulo en su proyecto porque a veces el error se puede resolver reinstalándolo

elimine node_modules y package-lock.json y ejecute por última vez npm install

over 4 years ago · Santiago Trujillo Denunciar

0

Parece que no hay nada malo con el siguiente código.
pero para tu información, SyntaxError: Unexpected identifier debido a algunas razones, que se mencionan a continuación:

  1. SQL es un lenguaje que distingue case-sensitive cuando le pasa cualquier parámetro como 'new_username' . Vuelva a comprobar que debe ser correcto.
  2. uso de caracteres especiales no deseados como ' or "
  3. utilizando un invalid identifier .

    Pruébalo con el siguiente código:
 let str = '%'+username+'%'; let sql = "SELECT * FROM accouts_data WHERE new_username LIKE ?"; connection.query(sql, str, function(err, result) { if(err) throw err });

Por si acaso, si no funciona, actualice sus node_modules con `npm install`. O simplemente elimine el número de versión de todos los módulos en el archivo `package.json` como `"mysql": "^2.18.1"` simplemente elimine `^2.18.1`. y luego, ejecutar:
 npm install


Actualizará cada módulo con su última versión automáticamente.

over 4 years ago · Santiago Trujillo Denunciar

0

No hay nada malo con la consulta, la probé con mysql y mysql2 y da el resultado esperado. Debe estar relacionado con nodejs, intente eliminar el directorio node_modules y el archivo package-lock.json y ejecute npm install

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda