我正在尝试用node.js插入一些数据。我已经编写了以下代码,并通过npm安装了MySQL支持,但我无法INSERT INTO
表。
下面是我的代码:
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');
}
});
});
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>
错误消息为:
您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解要使用的正确语法。‘username’= 'Test‘,'password’= 'test‘
我的错误是什么?
发布于 2014-02-14 20:44:33
如果你注意到了,你可能已经注意到这个转义允许你做类似这样的事情:
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‘
请注意,它们使用SET
而不是VALUES
。INSERT INTO ... SET x = y
是有效的MySQL查询,而INSERT INTO ... VALUES x = y
不是。
发布于 2016-10-24 03:32:09
我知道这是一个古老的帖子,但我想分享一下,INSERT INTO...VALUES是一个有效的命令(没有设置),对于批量更新非常有用:
db.query('INSERT INTO myTable (field1, field2, field3) VALUES ?', [values])
其中,values是一个数组数组,每个数组包含这三个字段,并作为记录插入到表中。
发布于 2017-02-20 09:10:50
对于其他搜索,我遇到了同样的问题,但事实证明这是一个更复杂、无关的问题。我并没有在文档的最上面声明'use strict';
。
我知道这本身不会解决数据库插入问题,但它指出了我整个脚本中不正确编码的部分,一旦修复了这些问题,它就能按预期工作。
https://stackoverflow.com/questions/21779528
复制相似问题