mysql - 使用 mysql-node 插入错误

标签 mysql node-mysql

这看起来应该 super 容易,我现在已经卡了大概两个小时了。四个不同的人已经看过但没有发现明显的问题。因此,我再次求助于 SO 社区。

非常简单 - 我只是想通过 mysql-node 在 mysql 数据库中插入数据。我没有收到任何连接错误,并且 SELECT 工作正常。正在使用的代码是:

exports.postNewCast = function(data, res) {
  var query = "INSERT INTO cast (name, portrait, role, bio) VALUES ('" + data.name + "', '" + data.portrait + "', '" + data.role + "', '" + data.bio + "');";
  console.log(query);
  dbConnection.query(query, data, function(err, result) {
    if (err) {
      console.log(err);
    } else {
      sendResponse(res, "Cast Member Added", 201);
    }
  });
};

记录的错误是:

{ [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cast (name, portrait, role, bio) VALUES ('Jessie', 'images/cast/marissa.jpg', 'L' at line 1]
  code: 'ER_PARSE_ERROR',
  errno: 1064,
  sqlState: '42000',
  index: 0 }

奇怪的部分(对我来说)是我可以从我的终端窗口(服务器运行的地方)复制 console.logged 查询字符串,并将其粘贴到 mysql 命令行中,它工作得很好。我曾尝试使用 GRANT 来确保正在运行的用户服务器具有权限,但这没有任何作用。我试过直接从工作源复制/粘贴 INSERT INTO 语法,并且只替换我的数据特定字段。我试过使用 VALUES ?选项,后跟一个数据对象,并得到相同的结果。

所以我犯了什么愚蠢的错误?

谢谢。

最佳答案

Ilya Bursov 是正确的,为后代添加了这个答案。我不确定“cast”是保留字还是什么,但我需要在表名周围加上反引号(“`”)才能使其正常工作。

关于mysql - 使用 mysql-node 插入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991086/

相关文章:

php - 来自 MySQL 查询的 Jquery 多维 JSON

php - WordPress:从小部件代码访问数据库

javascript - 模型对象构造函数中的 node-mysql 查询

javascript - 在未初始化的 Node.js 上连接到 MySQL

javascript - 最佳数据库连接数(node-mysql)

java - 如果java中的结果集为负数,如何获取时间

c# - 错误: Column count doesn't match value count at row 1 - But the query works in Navicat

MySQL 和 GROUP_CONCAT() 最大长度

mysql - 服务器 Ajax/http 上的 Nodejs 调用不读取新数据 Mongodb

mysql - 具有 MySQL 连接的 Nodejs 集群