首页 > 解决方案 > 错误:ER_BAD_FIELD_ERROR:“字段列表”中的未知列“标题”

问题描述

我正在使用mysql-await图书馆。

当我尝试查询时,出现以下错误:

Error: ER_BAD_FIELD_ERROR: Unknown column 'title' in 'field list'
    at Query.Sequence._packetToError (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
    at Query.ErrorPacket (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\protocol\sequences\Query.js:79:18)
    at Protocol._parsePacket (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\protocol\Protocol.js:291:23)
    at Parser._parsePacket (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\protocol\Parser.js:433:10)
    at Parser.write (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\protocol\Parser.js:43:10)
    at Protocol.write (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\protocol\Protocol.js:38:16)
    at Socket.<anonymous> (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\Connection.js:88:28)
    at Socket.<anonymous> (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\Connection.js:526:10)
    at Socket.emit (events.js:315:20)
    at addChunk (internal/streams/readable.js:309:12)
    --------------------
    at Protocol._enqueue (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\protocol\Protocol.js:144:48)
    at Connection.query (C:\Users\user\Desktop\Web\untitled\node_modules\mysql\lib\Connection.js:198:25)
    at C:\Users\user\Desktop\Web\untitled\node_modules\mysql-await\index.js:139:25
    at new Promise (<anonymous>)
    at ConnectionAwait.awaitQuery (C:\Users\user\Desktop\Web\untitled\node_modules\mysql-await\index.js:137:12)
    at Database.createArticle (C:\Users\user\Desktop\Web\untitled\utils\database.js:45:25)
    at C:\Users\user\Desktop\Web\untitled\routes\v1\v1.js:56:12
    at Layer.handle [as handle_request] (C:\Users\user\Desktop\Web\untitled\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\user\Desktop\Web\untitled\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\user\Desktop\Web\untitled\node_modules\express\lib\router\route.js:112:3) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlMessage: "Unknown column 'title' in 'field list'",
  sqlState: '42S22',
  index: 0,
  sql: "INSERT INTO `articles` (`id`, `title`, `type`, `reason`) VALUES ('7', 'test', 0, 'test123')"
}

连接创建代码:

this.connection = mysql.createConnection(require(dir + "config.json"));
this.connection.awaitQuery("CREATE TABLE IF NOT EXISTS `users` (`id` VARCHAR(20) NOT NULL PRIMARY KEY, `mail` TEXT NOT NULL, `password` VARCHAR(15) NOT NULL)");
this.connection.awaitQuery("CREATE TABLE IF NOT EXISTS `articles` (`id` INT NOT NULL, `title` VARCHAR(15) NOT NULL, `type` INT NOT NULL, `reason` TEXT NOT NULL)");

查询代码:

async createArticle(title, type, reason){
    this.id += 1;
    await this.connection.awaitQuery(`INSERT INTO \`articles\` (\`id\`, \`title\`, \`type\`, \`reason\`) VALUES ('${this.id}', '${title}', ${type}, '${reason}')`);
    return this.id;
}

SQL 验证器说它是有效的语法,我有什么遗漏吗?

标签: javascriptmysqlnode.js

解决方案


推荐阅读