Javascript ER_PARSE_ERROR node.js和mysql问题(插入)
我想在Node.js和MySQL中使用socket.io时,对Node.js进行简单的插入。不知道为什么,但我有这个错误 您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解第1行“markos”附近使用的正确语法 我的代码:Javascript ER_PARSE_ERROR node.js和mysql问题(插入),javascript,mysql,node.js,syntax-error,Javascript,Mysql,Node.js,Syntax Error,我想在Node.js和MySQL中使用socket.io时,对Node.js进行简单的插入。不知道为什么,但我有这个错误 您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解第1行“markos”附近使用的正确语法 我的代码: 当我尝试这个时,我得到了上面的错误 io.on("connection", function(socket){ console.log("a user is connected " + socket.id )
当我尝试这个时,我得到了上面的错误
io.on("connection", function(socket){
console.log("a user is connected " + socket.id );
socket.on("question", function (question){
let sql = "INSERT INTO nodeJs (name) VALUES ?";
con.query(sql, question, function (err) {
if (err) throw err;
console.log("1 record inserted");
});
});
});
});
如果我尝试这段简单的代码,一切正常:
io.on("connection", function(socket){
console.log("a user is connected " + socket.id );
socket.on("question", function (question){
let sql = "INSERT INTO nodeJs (name) VALUES ('John')";
con.query(sql, function (err) {
if (err) throw err;
console.log("1 record inserted");
});
});
});
});
问题参数始终有一个字符串。值周围缺少括号:
let sql=“插入节点(名称)值(?”;
//这里------------------------------------^-^
试试这个:让sql=“插入nodeJs(name)值(“+question+”)”;。请注意简单的引号“”,为了避免sql注入,我不建议这样做。我简直不敢相信我错过了这个!我还在学习node.js,还在学校学习。他们不像你那样插括号。。无论如何,非常感谢你的支持time@Markos是的,有括号,因为mysql需要then@Markos仅使用以下语法跳过括号:INSERT INTO nodeJs SET name=?
,其中在quesiton标记周围也不使用单引号