node . js,如何获得最后插入的ID
node.js & How to get the last inserted ID?
db.query("INSERT INTO `chat_entries`(`author`, `authorRank`, `receiver`, `timestamp`, `message`) VALUES (" + db.escape(GetUsername(connection)) + ", " + GetUserData(GetUsername(connection), "rank") + ", '-', " + Math.round(new Date().getTime() / 1000) + ", '" + db.escape(messageData.message) + "')", function(result, rows){
console.log(result.insertId);
});
控制台告诉我:
无法读取null属性'insertId'
在我搜索了一个解决方案后,我发现了这个页面:https://github.com/mysqljs/mysql getting-the-id-of-an-inserted-row
根据这个文档,它必须工作。我错在哪里?
你需要替换
console.log(result.insertId);
console.log(rows.insertId);
因为它是你要传递给回调函数的变量
您的回调参数错误。试试这个:
db.query("INSERT INTO `chat_entries`(`author`, `authorRank`, `receiver`, `timestamp`, `message`) VALUES (" + db.escape(GetUsername(connection)) + ", " + GetUserData(GetUsername(connection), "rank") + ", '-', " + Math.round(new Date().getTime() / 1000) + ", '" + db.escape(messageData.message) + "')", function (err, result) {
console.log(result.insertId);
});
根据文档,回调的第一个参数是error,第二个参数是result。
您可能还想为这些动态值使用占位符,而不是将它们串联起来。
此外,在使用db.escape()时不要硬编码单引号。
db.query("INSERT INTO table (`field1`, `field2`)
VALUES ('Hello', " + db.escape("There") + ")",
function(error, result) { });
相关文章:
- 在iframe代码中动态插入子id
- 包含插入的Meteor方法没有返回记录ID作为结果
- 如何将文本插入到几个带有 id 的文本区域中的一个文本区域中
- node-mssql 事务插入 - 返回插入的 id
- 我想单击一个
- 并获取 id 以通过 POST 将其插入数据库,可以吗?
- AJAX添加多个事件插入前重置Id
- 如何获取插入到表中的行的自动生成的ID
- JQuery 数据表添加新行,如果该行已经存在,请将其删除并为该 ID 插入新行
- 环回 - 基于 id 以外的其他属性的 REST 更新插入/更新
- 如何在SQLite中获取上次插入的行ID
- 我正在尝试遍历 id 数组,如果不存在 id,则插入一个 mongodb 文档.我怎样才能让他们坚持下去
- 当 Javascript 中的 POST ID 元素插入 PDO 时,数据库中没有结果
- 插入行 javascript 时递增 id
- 仍然没有添加到 DOM 中,但如果插入了警报/确认,则会获取标签 ID
- 将单击元素的类和父元素的 ID 插入到另一个图像中
- 将字段与 id 匹配并插入数据 - 流星
- 在 jQuery 中插入一个 CSS id
- 使用 Ajax 和 jQuery 将单选按钮值中的 ID 插入数据库
- jQuery/Javascript:在jSON对象中插入ID
- node.js mysql insert id -我如何在插入查询之外暴露插入id