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.