无法将负整数输入 SQLite table

Can't input negative integer into SQLite table

我正在尝试将一个负整数放入我的 sqlite 数据库,但由于某种原因没有被插入。

我收到错误:

TypeError: can't multiply sequence by non-int of type 'float'

当我检查打印值时,我发现它是空的。

这是我用来插入 table:

的命令
db.execute(
    "INSERT INTO history (id,date,symbol,shares,price) VALUES (?,?,?,?,?)",
    session["user_id"],
    time,
    request.form.get("symbol").upper(),
    request.form.get("shares") * -1,
    price,
)

request.form.get("shares") 是从 HTML 表单输入的数字。

我用它来制作 table:

db.execute(
    "CREATE TABLE history (id int, date varchar(255), symbol varchar(9), shares int, price int)"
)

我试过用 int() 包围 request.form.get("shares") 但没用。

正整数工作正常。

原因正是错误所说的。从请求表单返回的数据返回的是非数字类型。任何输入都作为字符串返回,然后需要重新定义。如果你尝试做

print(type(request.form.get("shares")

您可以看到结果的类型并从那里开始工作。 @Jack Deeth 在他的回答中所说的将起作用。您也可以始终在插入之前进行数学运算,并预先声明为 int。