【发布时间】:2021-03-17 12:44:39
【问题描述】:
我正在尝试插入到我使用 python 3.9 在 sqlite3 创建的表中
cur.execute('CREATE TABLE name(id INTEGER, number TEXT, othernumber TEXT, morenumber INTEGER DEFAULT 0);')
conn.commit()
然后当我尝试从 python 插入一个包含前导 0 的字符串时,例如
cur.execute('INSERT INTO name VALUES({}, {}, {}, {});'.format(0, "0123", "034", 23)
conn.commit()
然后我查询以查看表格并得到
cur.execute('SELECT * FROM name')
data = cur.fetchall()
print(data)
我收到[(0, '123', '34', 23)]
缺少起始零。我检查了列的类型是否正确,它显示的是 TEXT。
【问题讨论】:
-
对docs 中描述的值使用参数替换。对值使用字符串格式是不安全的。在这种情况下,这些值没有被正确引用,因此它们被解释为整数。
标签: python python-3.x sqlite sql-insert