繁体   English   中英

如何从电报机器人将数据插入数据库?

[英]How to insert data into a database from a telegram bot?

我正在写一个电报机器人。 测试需要这个机器人。 该机器人的主要任务是将用户响应写入数据库。 我需要将用户的消息写入数据库。 由于发生错误,我目前无法编写消息。 我在哪里 go 错了? 请帮助解决这个问题。

      if (msg.text === '/start') {
        await bot.sendMessage(msg.chat.id, "message", {
          reply_markup: {
            keyboard: [
              ['Start the test']
            ]
          }
        })
      }
      else if (msg.text === 'Start the test') {
        await bot.sendMessage(msg.chat.id, "Please enter your name")      
          bot.on('message', async msg => {
            const name = msg.text
            const insert = `INSERT INTO User (username) VALUE ('${name}')`
            await sequelize.query(insert)
          })
      }

错误信息:

Executing (default): INSERT INTO User (username) VALUE ('name')
node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^

Error
    at Query.run (/home/user/bot/node_modules/sequelize/dist/lib/dialects/postgres/query.js:50:25)
    at /home/user/bot/node_modules/sequelize/dist/lib/sequelize.js:313:28
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async TelegramBot.<anonymous> (/home/user/bot/bot.js:60:13) {
  name: 'SequelizeDatabaseError',
  parent: error: syntax error at or near "VALUE"
      at Parser.parseErrorMessage (/home/user/bot/node_modules/pg-protocol/dist/parser.js:287:98)
      at Parser.handlePacket (/home/user/bot/node_modules/pg-protocol/dist/parser.js:126:29)
      at Parser.parse (/home/user/bot/node_modules/pg-protocol/dist/parser.js:39:38)
      at Socket.<anonymous> (/home/user/bot/node_modules/pg-protocol/dist/index.js:11:42)
      at Socket.emit (node:events:390:28)
      at addChunk (node:internal/streams/readable:315:12)
      at readableAddChunk (node:internal/streams/readable:289:9)
      at Socket.Readable.push (node:internal/streams/readable:228:10)
      at TCP.onStreamRead (node:internal/stream_base_commons:199:23) {
    length: 94,
    severity: 'ERROR',
    code: '42601',
    detail: undefined,
    hint: undefined,
    position: '28',
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    schema: undefined,
    table: undefined,
    column: undefined,
    dataType: undefined,
    constraint: undefined,
    file: 'scan.l',
    line: '1145',
    routine: 'scanner_yyerror',
    sql: "INSERT INTO User (username) VALUE ('name')",
    parameters: undefined
  },
  original: error: syntax error at or near "VALUE"
      at Parser.parseErrorMessage (/home/user/bot/node_modules/pg-protocol/dist/parser.js:287:98)
      at Parser.handlePacket (/home/user/bot/node_modules/pg-protocol/dist/parser.js:126:29)
      at Parser.parse (/home/user/bot/node_modules/pg-protocol/dist/parser.js:39:38)
      at Socket.<anonymous> (/home/user/bot/node_modules/pg-protocol/dist/index.js:11:42)
      at Socket.emit (node:events:390:28)
      at addChunk (node:internal/streams/readable:315:12)
      at readableAddChunk (node:internal/streams/readable:289:9)
      at Socket.Readable.push (node:internal/streams/readable:228:10)
      at TCP.onStreamRead (node:internal/stream_base_commons:199:23) {
    length: 94,
    severity: 'ERROR',
    code: '42601',
    detail: undefined,
    hint: undefined,
    position: '28',
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    schema: undefined,
    table: undefined,
    column: undefined,
    dataType: undefined,
    constraint: undefined,
    file: 'scan.l',
    line: '1145',
    routine: 'scanner_yyerror',
    sql: "INSERT INTO User (username) VALUE ('text')",
    parameters: undefined
  },
  sql: "INSERT INTO User (username) VALUE ('text')",
  parameters: {}
}
[nodemon] app crashed - waiting for file changes before starting...

您必须从以下位置更改您的查询:

INSERT INTO User (username) VALUE ('text')

INSERT INTO User (username) VALUES ('text')

价值 -> 价值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM