mysql - Node.js - 插入添加 0 而不是字符串
问题描述
我正在尝试使用 node.js 插入一些数据。我通过 npm 安装了 MySQL 支持,但似乎仍然无法使用 INSERT INTO 输入正确的字符串。(数据库中的行类型是 tinytext,字符串小于 255 个字符。)
这是我的代码 https://hastebin.com/komikahatu.http
预期的输出是它插入参数(/name 捕获的内容)和执行命令的用户的用户名(/name)。
console.log('Dirname: ' + __dirname);
const bot = require('../core.js');
bot.on("polling_error", (msg) => console.log(msg));
var config = require('../config.json');
var mysql = require('mysql');
var sqlhost = config.sql.host;
var sqluser = config.sql.user;
var sqlpass = config.sql.password;
var sqldb = config.sql.database;
var con = mysql.createConnection({
host: sqlhost,
user: sqluser,
password: sqlpass,
database: sqldb
});
bot.onText(/\/name (.+)/, (msg, match) => {
const chatId = msg.chat.id;
// 'msg' is the received Message from Telegram
// 'match' is the result of executing the regexp above on the text content
// of the message
let username;
const name = match[1].toString(); // the captured name
if(msg.from.username !== ''){
username = msg.from.username;
}
var setnickname = {
username_: username,
nickname_: name
};
var sql = con.query('INSERT INTO nickname_data VALUES (?)', setnickname, function (err, result){
console.log(sql.sql);
if (err) {
console.error(err)
return;
}
console.error(result);
});
if (name !== "undefined") {
bot.sendMessage(chatId, 'Welcome ' + name + '!');
// bot.sendMessage(chatId, 'Welcome ' + msg.from.name + '!');
// config.information.normalusername = name;
}
});
解决方案
试试这个
var setnickname = {
username_: String(username),
nickname_: String(name)
};
var sql = con.query('INSERT INTO nickname_data SET ?', setnickname, function (err, result){
console.log(sql.sql);
if (err) {
console.error(err)
return;
}
console.error(result);
});
VALUES
在查询中使用关键字时,您还可以将第二个参数作为数组传递。类似
var setnickname = [String(username),String(name)];
var sql = con.query('INSERT INTO nickname_data(username_,nickname_) VALUES (?,?)', setnickname, function (err, result){
console.log(sql.sql);
if (err) {
console.error(err)
return;
}
console.error(result);
});
推荐阅读
- vue.js - Vue排序表(从高到低排序)
- vispy - 如何使用 vispy 绘制多尺寸?
- google-cloud-data-fusion - 有没有办法在数据融合中动态生成输出模式?
- c# - EF Core 压缩解压栏
- android - 发布 apk com.facebook.react.common.javascriptexception:null is not an object (evalating t(r(d[1])).default.direction react native
- azure-devops - Azure DevOps 管道测试结果中的错误和堆栈跟踪消息被截断
- reactjs - 如何在反应组件的开玩笑/酶测试中的道具中设置历史对象的 location.state
- electron - 打包后如何在Electron中获取环境变量?
- python-3.x - 另一个 Tkinter Checkbutton 不工作问题
- android - 无法访问 signapk.jar