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

199
Vistas
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 Respuestas
Responde la pregunta

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 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