query node into fields data consultas mysql node.js sql-insert node-mysql

fields - node insert into mysql



INSERT INTO falla con node-mysql (3)

Para otros usuarios que realizaron búsquedas, tuve el mismo problema, pero resultó que era un problema más complicado y no relacionado. No estaba declarando ''use strict''; en la parte superior del documento.

Sé que esto en sí mismo no solucionará el problema de inserción de la base de datos, pero señaló partes de mi script completo que se codificaron incorrectamente, y una vez que se solucionaron, funcionó como se esperaba.

Estoy tratando de insertar algunos datos con node.js. Escribí el siguiente código e instalé el soporte de MySQL a través de npm, pero no pude INSERT INTO la tabla.

Aquí está mi código:

var mysql = require(''mysql''); function BD() { var connection = mysql.createConnection({ user: ''root'', password: '''', host: ''localhost'', port: 3306, database: ''nodejs'' }); return connection; } app.post("/user/create", function(req, res) { var objBD = BD(); var post = { username: req.body.username, password: req.body.password }; objBD.query(''INSERT INTO users VALUES ?'', post, function(error) { if (error) { console.log(error.message); } else { console.log(''success''); } }); });

Código HTML:

<form action="/user/create" method="POST" class="form-horizontal"> <input type="text" id="username_input" name="username"> <input type="text" id="password_input" name="password"> <input type="submit" name="Submit" value="Insert" class="btn"> </form>

El mensaje de error es:

Tienes un error en tu sintaxis SQL; verifique el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de .''username ''='' Test '','' password ''='' test ''en la línea 1

Cual es mi error


Preste atención a la documentación de node-mysql :

Si prestaste atención, es posible que hayas notado que este escape te permite hacer cosas limpias como esta:

var post = {id: 1, title: ''Hello MySQL''}; var query = connection.query(''INSERT INTO posts SET ?'', post, function(err, result) { // Neat! }); console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = ''Hello MySQL''

Tenga en cuenta que utilizan SET lugar de VALUES . INSERT INTO ... SET x = y es una consulta de MySQL válida, mientras que INSERT INTO ... VALUES x = y no lo es.


Sé que esta es una publicación antigua, pero pensé que compartiría que INSERT INTO ... VALUES es un comando válido (no SET) y muy útil para las actualizaciones masivas:

db.query(''INSERT INTO myTable (field1, field2, field3) VALUES ?'', [values])

donde [valores] es una matriz de matrices, cada matriz contiene esos tres campos y se inserta como un registro en la tabla.