【问题标题】:MySQL insert error : ER_BAD_FIELD_ERROR: Unknown column '2525' in 'field list'MySQL插入错误:ER_BAD_FIELD_ERROR:“字段列表”中的未知列“2525”
【发布时间】:2014-05-26 02:15:18
【问题描述】:
var convID = 2525;
var contactUsername = 'blabla';
var userId = 100;
var contactId = 200;

var sql = "INSERT INTO contacts (FK_OWNERID, FK_USERID, FC_CONTACTNAME, `CONVERSATION_ID`)
                     VALUES (" + mysql.escape(userId) + "," + mysql.escape(contactId) + "," + mysql.escape(contactUsername) + "," + convID + "),
                     (" + mysql.escape(contactId) + "," + mysql.escape(userId) + "," + mysql.escape(username) + "," + convID + ")";

`错误:ER_BAD_FIELD_ERROR:“字段列表”中的未知列“2525” CONVERSATION_ID 和 FC_CONTACTNAME 的字段为 varchar(32),其他 2 个字段为 int。

这个查询有什么问题?我什至在CONVERSATION_ID 周围加上了反引号,它认为convID 变量是一个列...

编辑:

如果我的查询就是这样,那么它可以工作:

        var sql = "INSERT INTO contacts (`FK_OWNERID`, `FK_USERID`, `FC_CONTACTNAME`)
                 VALUES (" + mysql.escape(userId) + "," + mysql.escape(contactId) + "," + mysql.escape(contactUsername) + "),
                 (" + mysql.escape(contactId) + "," + mysql.escape(userId) + "," + mysql.escape(username) + ")";

【问题讨论】:

  • 什么是表结构(文件类型、长度、键)?

标签: mysql sql


【解决方案1】:

制作

" + convID + "

到

'" + convID + "'

很可能它是一个字符串,数据类型是 varchar,所以你需要用单引号括起来。

【讨论】:

    【解决方案2】:

    我自己也有类似的问题,我也没有正确指定所有列名。这是最终起作用的代码。

    var queryString = "INSERT INTO " + table + " (columnText, columnBool) VALUES ('" + val + "', FALSE);"
    

    【讨论】:

      【解决方案3】:

      我最近在尝试将参数传递到 Node JS 中的字符串时遇到了类似的问题。

      最后,我可以通过使用这一行将动态插入到我的 MySQL 数据库中:

      insertIntoNodeDirectory('2', '"' + testMacAddress[0] + '"', '1');

      这将输入整数值 2、testMacAddress 数组中索引 0 处包含的字符串值以及整数值 1。

      如果我使用这一行: insertIntoNodeDirectory('2', '" + testMacAddress[0] + "', '1');

      如果没有围绕 testMacAddress 的附加单引号,插入数据库的值是字符串“testMacAddress[0]”。不是我想要的。

      【讨论】:

      • 我非常怀疑这是 OP 想要解决的问题,但是你刚才说的是真的,实际上,如果他的 'convID' 已经是类似于 '2525' 的东西,那可能是他的问题
      【解决方案4】:
      var _name = req.body.name
      var _age = req.body.age
      var _table = 'people'
      
      const _query = "INSERT INTO " + _table + " (name, age) VALUES ('" + _name + "', '" + _age + "' );"
      

      这对我有用,主要问题出现在查询中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-09
        • 1970-01-01
        • 2012-11-09
        • 2016-02-13
        • 2020-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多