rok*_*n78 19 mysql node.js sql-insert node-mysql
我试图用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');
}
});
});
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
错误消息是:
您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第1行使用正确的语法.'username'='Test','password'='test'
我的错是什么?
Tim*_*lla 59
注意以下文档node-mysql
:
如果你注意了,你可能已经注意到这个逃脱可以让你做这样的整洁的事情:
Run Code Online (Sandbox Code Playgroud)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
不是.
小智 12
我知道这是一个老帖子,但我想我会分享INSERT INTO ... VALUES是一个有效的命令(没有SET),对批量更新非常有用:
db.query('INSERT INTO myTable (field1, field2, field3) VALUES ?', [values])
Run Code Online (Sandbox Code Playgroud)
其中[values]是一个数组数组,每个数组包含这三个字段并作为记录插入表中.
归档时间: |
|
查看次数: |
73760 次 |
最近记录: |