用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一个数据库,然后按预期工作。 你需要添加的是调用createConnection
的database
属性,所以你的代码应该如下所示:
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) { // ... });
- JavaScript范围。 如何从callback函数中检索信息? 节点的MySQL
- 用nodejs和node-mysql返回行
- 在TypeScript中导入时找不到模块
- ExpressJS中的“VARCHAR”和服务器硬盘中的映像存储图像在数据库中的位置
- NodeJS / Express – 在路由器文件中创build可用的MySQL连接对象
- 无法从nodejs + node-mysql中获取模块的返回值
- 用Node JS将logging数组插入到mysql中
- 插入多个值时,节点mysql上的'ER_PARSE_ERROR'
- 使用getConnection()和node.js与node-mysql模块直接使用池之间的区别?