pythonsqlite3没有这样的列很奇怪

2024-05-02 16:30:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将值插入到sqlite3db表中的列 具体如下:

c.execute("""CREATE TABLE IF NOT EXISTS keys(name TEXT, po TEXT, options TEXT, identifier TEXT, currtime TEXT)""")
c.execute('INSERT INTO keys VALUES ( ' + Customer_Name + ' , ' + Purchase_Order + ' , ' + options + ' , ' + UUID + ' , ' + currtime + ' )')

这些参数实际上是从HTML前端传递的。我将它们从unicode转换为字符串,如下所示:

^{pr2}$

如果是整数,则没有错误。 如果输入是一个字符串(例如joseph),则会出现以下错误。知道为什么吗?在

OperationalError: no such column: joseph

Tags: 字符串textexecuteif错误createexiststable
1条回答
网友
1楼 · 发布于 2024-05-02 16:30:42

您似乎一次从web前端获取一个数据库记录的内容。在这种情况下,您可以将一个记录构建为一个列表,并按以下方式将其插入数据库。在

import sqlite3

conn = sqlite3 . connect ( 'db.sqlite' )
c = conn . cursor ( )

c.execute("""CREATE TABLE IF NOT EXISTS keys(name TEXT, po TEXT, options TEXT, identifier TEXT, currtime TEXT)""")

oneRecord = [ 'joe', 'DA123', 'nilbymouth', '0034', '1653', ]
c.execute('INSERT INTO keys VALUES (?,?,?,?,? )', oneRecord)

conn.close()

这种结构的使用,涉及到“?”性格,也被认为是比其他人更安全的注射攻击。在

相关问题 更多 >