Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

312
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!