mySql 插入语法 - 没有插入预期的内容

mySql Insert Syntax - Not Inserting What's Expected

我有这个 INSERT 查询。它确实在 table 中创建了一条记录,但是“client”值为 0,而“short”值为 null。但是,所有控制台日志都显示正确的数据。我假设这是我使用问号时的一个简单语法错误。但是我找不到它,或者似乎也只能使用变量名来让它工作。感谢任何帮助。

app.put("/audit/create", function (req, res) {
  console.log("It is getting to the route");
  const client = req.body.client;
  const short = req.body.short;
  console.log(`client: ${client}`);
  console.log(`short: ${short}`);
  connection.getConnection(function (err, connection) {
      connection.query(
        `INSERT INTO audits (client, short)
        VALUES (?, ?)`,
        [
          {
            client: client,
          },
          {
            short: short,
          },
        ],
        function (error, results, fields) {
          if (error) throw error;
          res.json(results);
          console.log(`Audit has been created`);
        }
      );
    connection.release();
  });
});

我也尝试过使用 ${client} 和 ${short} 的变量名称代替问号...但仍然得到相同的结果。然而,呈现 ${client} 和 ${short} 的控制台日志确实记录了我期望看到的正确数据。

为什么要将对象作为值传递给查询?尝试一下:

connection.query(
    'INSERT INTO audits (client, short) VALUES (?, ?)',
    [ client, short ],
    function ...