簡體   English   中英

@ mysql / xdevapi在插入數據時返回無效的輸入表達式(MySQL 8)

[英]@mysql/xdevapi returning invalid input expression when inserting data (MySQL 8)

我正在將@ mysql / xdevapi包與NodeJSMySQL 8 docker 容器一起使用

我得到的錯誤是:

Error: invalid input expression
    at module.exports (C:\Users\BugHunter\Projects\nines\server\node_modules\@mysql\xdevapi\lib\DevAPI\Util\parseFlexibleParamList.js:43:15)

這是我的桌子:

CREATE TABLE IF NOT EXISTS `surveyrewards`.`users` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `firstname` VARCHAR(20) NOT NULL,
  `surname` VARCHAR(20) NOT NULL,
  `birthday` DATE NULL,
  `gender` ENUM("male", "female") NOT NULL,
  `email` VARCHAR(255) NOT NULL,
  `postcode` VARCHAR(10) NULL,
  `is_subscribed` TINYINT NOT NULL DEFAULT 0,
  `is_confirmed` TINYINT NOT NULL DEFAULT 0,
  `last_mailed` TIMESTAMP NULL,
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `email_UNIQUE` (`email` ASC) VISIBLE)
ENGINE = InnoDB;

和我的節點代碼使用這些文檔

require('dotenv').config()

const mysqlx = require('@mysql/xdevapi')

const config = {
  host: process.env.MYSQL_HOST ,
  user: process.env.MYSQL_USER,
  port: parseInt(process.env.MYSQL_PORT),
  password: process.env.MYSQL_PASSWORD,
  schema: process.env.MYSQL_DATABASE
}
mysqlx.getSession(config)
.then(session => {
  console.log(process.env)
  const table = session.getSchema(config.schema).getTable('users')
  return table
    .insert([ 'firstname', 'surname', 'email', 'gender', 'is_subscribed', 'is_confirmed' ])
    .values('Bob', 'hope', 'bob@example.com', 'male', 0, 0)
    .execute()
})
.then(() => console.log('Works'))
.catch(err => console.warn(err))

錯誤很大,由於我的代碼相同,因此我不確定如何從此處繼續。 有什么建議嗎?

那實際上是一個錯誤,這就是為什么錯誤消息不清楚的原因。 :)

當前不接受諸如0類的虛假值作為有效values()參數。 但是,事實並非如此。 如果您願意,可以使用“ Connector for Node.js類別通過MySQL錯誤跟蹤器進行報告,但可以將其視為已跟蹤。

一種討厭的解決方法是改用字符串。 即使您所用的SQL數據類型為TINYINT ,它仍將起作用,並且該值將被“強制”。

return table
  .insert([ 'firstname', 'surname', 'email', 'gender', 'is_subscribed', 'is_confirmed' ])
  .values('Bob', 'hope', 'bob@example.com', 'male', '0', '0')
  .execute()

免責聲明:我是連接器的主要開發人員。

暫無
暫無

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

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