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

200
Views
Error de JavaScript MySQL al insertar declaraciones preparadas a granel

Tengo un problema. Estoy tratando de insertar unos cientos de objetos en mi base de datos usando declaraciones masivas preparadas. La tabla en la que estoy tratando de insertar es la siguiente: ingrese la descripción de la imagen aquí

Entonces tengo el siguiente código:

 static save() { data = [[1, '', '', 0, 0, 0, 0, 0], [2, '', '', 0, 0, 0, 0, 0], [3, '', '', 0, 0, 0, 0, 0], [4, '', '', 0, 0, 0, 0, 0]]; let sql = "INSERT INTO Candlestick (openTime, market, `interval`, open, high, low, close, volume) VALUES (?, ?, ?, ?, ?, ?, ?, ?);"; return db.execute(sql, [data]); }

Pero esto da como resultado el siguiente resultado:

 Error: Incorrect arguments to mysqld_stmt_execute at PromisePool.execute (C:\Users\Alexander\Projects\API\node_modules\mysql2\promise.js:359:22) at Function.save (C:\Users\Alexander\Projects\API\src\api\v1\models\Candlestick.js:18:19) at C:\Users\Alexander\Projects\API\src\api\v1\controllers\candlestickController.js:28:29 at processTicksAndRejections (node:internal/process/task_queues:96:5) { code: 'ER_WRONG_ARGUMENTS', errno: 1210, sql: 'INSERT INTO Candlestick (openTime, market, `interval`, open, high, low, close, volume) VALUES (?, ?, ?, ?, ?, ?, ?, ?);',

Cuando copio la consulta y establezco manualmente las variables en:

 INSERT INTO Candlestick (openTime, market, `interval`, open, high, low, close, volume) VALUES (1, '', '', 0, 0, 0, 0, 0);

La consulta se ejecuta en phpmyadmin: ingrese la descripción de la imagen aquí

Alguien me puede decir que me falta...

Estoy usando:
mysql2 - ^2.3.3
mariadb - 10.3.34

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Para solucionar este problema, tuve que cambiar la consulta de:

 let sql = "INSERT INTO Candlestick (openTime, market, `interval`, open, high, low, close, volume) VALUES (?, ?, ?, ?, ?, ?, ?, ?);";

a:

 let sql = "INSERT INTO Candlestick (openTime, market, `interval`, open, high, low, close, volume) VALUES ?;";

Porque cada entrada en los [datos] representa: (1, '', '', 0, 0, 0, 0, 0) Para que se complete cada vez. También cambié db.execute a db.query , por lo que las consultas se prepararán en el lado del cliente. La ventaja de eso es que puede ver el resultado de la consulta preparada en la consola, cuando la consulta sale mal.

about 4 years ago · Juan Pablo Isaza 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!