Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

825
Visualizações
Error: argumentos incorrectos para mysqld_stmt_execute

Estoy trabajando en un proyecto de nodeJs y usando un paquete npm mysql2 para la base de datos mysql.

Mi configuración de MySql: -

 let mysql = MYSQL.createConnection({ host: `${config.mysql.host}`, user: `${config.mysql.user}`, password: `${config.mysql.password}`, database: `${config.mysql.db}`, });

Cuando estoy usando una consulta

 async function getUsers ({pageNumber}) { // suppose pageNumber = 1 const [result] = await mysql.execute( `SELECT * FROM user LIMIT ?,20;`, [pageNumber] ); return result; }

El código anterior está funcionando bien. Pero cuando trato de multiplicar cualquier número con pageNumber, arroja un error Error: Argumentos incorrectos para mysqld_stmt_execute

Ex.

 async function getUsers ({pageNumber}) { // suppose pageNumber = 1 pageNumber = pageNumber * 20; // here we multiply 20 with pageNumber (20 is the row limit) const [result] = await mysql.execute( `SELECT * FROM user LIMIT ?,20;`, [pageNumber] ); return result; }

el código anterior arroja el error.

Nota: el tipo de número de página es un número, no una cadena.

Por favor ayuda.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esto parece ser un error introducido en MySQL versión 8.0.22, recibo el mismo error después de actualizar desde 8.0.19. No estoy seguro acerca de la causa o una solución adecuada, mientras tanto, estoy asignando los valores a las cadenas, según https://github.com/sidorares/node-mysql2/issues/1239#issuecomment-718471799 , que parece funcionar .

over 4 years ago · Santiago Trujillo Relatório

0

es como un error, use una interpolación como esta (sí, es una mala práctica, pero mientras tanto puede encontrar una solución):

 const [result] = await mysql.execute( `SELECT * FROM user LIMIT ${pageNumber},20;` );

y, si la variable es una cadena, coloque ' ' alrededor de la interpolación

 `SELECT * FROM user WHERE xname = '${x}' ;`
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda