【问题标题】:Node-MySQL unable to insert TIMENode-MySQL 无法插入 TIME
【发布时间】:2020-11-05 21:58:18
【问题描述】:

我正在尝试在 Express.JS 中构建一个 API,并在后台运行一个 MySQL 服务器。其中一个表包含类型为 TIME 的列。但是,当尝试插入该表时,我得到 {code: 'ER_PARSE_ERROR', errno: 1064, sqlState: '42000'}

使用单个 ?,消息是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 \'\'23:00:41\'\' 附近使用正确的语法

使用双??,消息是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 \'`23:00:41`\' 附近使用正确的语法

实际的代码行如下所示:

let query = "INSERT INTO Zeiterfassung (Break_Start) VALUES ? ";
let data = Break_Start; //Break_Start is a string like "23:40:39"
dbConn.query(query, data, (err, rows) => {...});

MySQL 版本:8.0.22-0ubuntu0.20.04.2

节点版本:v10.19.0

【问题讨论】:

  • 请不要为MySQL 问题标记SQL Server - 它们是完全不同的RDBMS。

标签: javascript mysql sql node.js sql-insert


【解决方案1】:

如果你有一个字符串参数,那么你需要用括号括住?:

let query = "INSERT INTO Zeiterfassung (Break_Start) VALUES (?)";
dbConn.query(query, [ Break_Start ], function(err, rows) => {...});

? 不带括号的语法是用来传递对象的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2021-12-26
    • 2018-10-14
    • 2013-02-18
    • 1970-01-01
    • 2018-01-03
    • 2013-01-05
    相关资源
    最近更新 更多