es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando pasar variables a una declaración preparada en JavaScript Node JS

function addEmployee() {
  inquirer
    .prompt([
      {
        name: "firstname",
        type: "input",
        message: "Ingrese su nombre de pila ",
      },
      {
        name: "lastname",
        type: "input",
        message: "Ingrese su apellido ",
      },
      {
        name: "role",
        type: "list",
        message: "¿Cuál es su rol?",
        choices: selectRole(),
      },
      {
        name: "choice",
        type: "rawlist",
        message: "¿Cuál es el nombre de su gerente?",
        choices: selectManager(),
      },
    ])
    .then(function (val) {
      var roleId = selectRole().indexOf(val.role) + 1;
      var managerId = selectManager().indexOf(val.choice) + 1;
      db.query(
        "INSERT INTO employee (first_name, last_name, role_id, manager_id) values (?, ?, ?, ?)",
        {
          first_name: val.firstName,
          last_name: val.lastName,
          manager_id: managerId,
          role_id: roleId,
        },
        function (err) {
          if (err) throw err;
          console.table(val);
          startPrompt();
        }
      );
    });
}

No puedo hacer que la declaración de consulta INSERT into employees funcione. Estoy usando el paquete npm mysql2 para interactuar con una base de datos Mysql en Node JS. Intentando pasar las respuestas de las preguntas del formulario a la declaración preparada para insertar en la tabla de empleados. ¿Cómo paso variables para la declaración preparada?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para pasar variables a la declaración preparada para INSERTAR en la tabla de empleados, debes utilizar marcadores de posición en la declaración de la consulta y luego pasar las variables como un array en el segundo parámetro de la función db.query().

    Por ejemplo:

    db.query(
      "INSERT INTO empleado (nombre, apellido, id_rol, id_manager) VALUES (?, ?, ?, ?)",
      [val.nombre, val.apellido, idRol, idManager],
      function (err) {
        if (err) throw err;
        console.table(val);
        startPrompt();
      }
    );
    

    En este ejemplo, los marcadores de posición ? corresponden a las variables en el array que se pasa como segundo parámetro. Las variables se pasan en el mismo orden en que aparecen los marcadores de posición en la cadena de consulta.

Comments are closed.