mysql - 为什么mysql转义会破坏整个查询?

标签 mysql sql node.js syntax-error

我一直试图在这个查询中找到问题,但似乎找不到它,这让我发疯。这是我的代码:

sql.query("INSERT INTO coinflips (host,host_side,items,join,expires,value,secret,hash,winningPercentage) VALUES (?,?,?,?,?,?,?,?,?)",[" "," "," "," "," ",0," "," ",0.5],(err)=>{
        if(err) return console.log(err);
});

但是,我收到以下错误:

'您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在\'join,expires,value,secret,hash,winingPercentage) 附近使用的正确语法 VALUES (\'\',\'\',\'\',\'\',\'\',0,\' 在第 1 行

这是数据库:

https://ibb.co/LdywXQN

我从来没有遇到过转义查询的问题,但突然这个问题停止了工作,我不明白为什么。

最佳答案

join 是保留字,您必须使用反引号将其转义:

sql.query("INSERT INTO coinflips (host,host_side,items,`join`,expires,value,secret,hash,winningPercentage) VALUES (?,?,?,?,?,?,?,?,?)",[" "," "," "," "," ",0," "," ",0.5],(err)=>{
    // Here -------------------------------------------^----^
    if(err) return console.log(err);
});

关于mysql - 为什么mysql转义会破坏整个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049365/

相关文章:

javascript - 如何正确地将用户名和密码从reactjs传递到后端进行身份验证?

javascript - 如何使用 promise 结果的响应处理程序

mysql - 存储社会安全号码

sql - Oracle-选择字段具有小写字符的位置

MySQL选择前10%的用户

php - 我的更新查询有什么问题?

sql - SELECT SQL语法,用于WHERE子句中的计数

javascript - Promise.all 在 foreach 循环之后

java - Web 应用程序服务器过载

C# Mysql 与 Entity Framework 错误 - 无法更新 EDMX 文件