用Node.js插入数据

我试图插入一些数据与Node.js。 我用npm安装了mysql的支持。 我刚刚检查了一些源代码,我已经写了下面的代码,我可以按照console.log SQL输出和SQL输出是正确的。 但是它不会影响mySQL数据库中的任何行。

这是我的代码:

var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'cccc.net', user : 'username', password : 'password', }); var post = {srcUserID: userSrcID, destUserID: msg.userid, messageContent: msg.txt, messageSendDate:sendDate }; connection.query('INSERT INTO messages VALUES ?', post, function(err, result) { }); 

在执行查询之前,您必须select一个数据库。 最简单的方法是将其添加到createConnection调用中的对象:

 var connection = mysql.createConnection({ host : 'cccc.net', user : 'xxxxx_usr', password : 'xxxxxxx', database : 'database_name' }); 

它迟到,但如果这可以帮助其他。

  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查询,而INSET INTO … VALUES x = y不是。

正如你从你的评论中指出的,你没有select数据库:

 ER_NO_DB_ERROR: No database selected 

因此,您需要先select一个数据库,然后按预期工作。 你需要添加的是调用createConnectiondatabase属性,所以你的代码应该如下所示:

 var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'cccc.net', user: 'xxxxx_usr', password: 'xxxxxxx', database: 'name of your database goes here …' }); var post = { srcUserID: userSrcID, destUserID: msg.userid, messageContent: msg.txt, messageSendDate:sendDate }; connection.query('INSERT INTO messages VALUES ?', post, function (err, result) { // ... });