簡體   English   中英

ER_BAD_FIELD_ERROR:“字段列表”中的未知列

[英]ER_BAD_FIELD_ERROR: Unknown column in 'field list'

我對 sql 不太了解,正在做我的第一個項目

我從教程點閱讀了有關更新查詢的信息

首先,我創建了一個看起來像這樣的輔助函數

const updateFieldInTable = (tableName, conditionParameter, updatedCondition, locationReference, locationReferenceValue) => {
  return new Promise((resolve, reject) => {
    pool.getConnection((error, connection) => {
      if (error) return reject(error)
      const query = `UPDATE ${tableName} SET ${conditionParameter} = ${updatedCondition} WHERE ${locationReference} = ${locationReferenceValue}`
      connection.query(query, (error, response) => {
        connection.destroy()
        if (error) return reject(error)
        return resolve(response)
      })
    })
  })
}

我正在使用它來更新表中的字段,因此我創建了一個虛擬路由來為我執行此任務並查看它是否有效

app.get('/test', async (req, res) => {
  const resultFromQuery = await updateFieldInTable('personal', 'gradYear', 2017, 'userId', 1234)
  console.log(`Result from Query:`,  resultFromQuery)
  res.status(200).json(resultFromQuery[0])
});

上面的查詢工作得很好,但是如果我將其更改為 varchar,則會出現以下錯誤

錯誤:ER_BAD_FIELD_ERROR:“字段列表”中的未知列“ryan”

這是給我錯誤的原因

app.get('/test', async (req, res) => {
  const resultFromQuery = await updateFieldInTable('personal', 'school', 'ryan', 'userId', 1234)
  console.log(`Result from Query:`,  resultFromQuery)
  res.status(200).json(resultFromQuery[0])
});

這就是我的 sql 愚蠢的樣子

 `gradYear` int(4) DEFAULT NULL,
  `gradMonth` enum('january','february','march','april','may','june','july','august','september','october','november','december') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `school` varchar(255) DEFAULT NULL,
  `degree` varchar(255) DEFAULT NULL,

當你想在 db 上插入/更新字符串值時,它應該在單引號之間。 使用您的參數 sql 看起來像SET school = ryan但它應該是SET school = 'ryan' 因此,將 ryan 值發送到您的函數,例如'\\'ryan\\''"'ryan'"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM