我正在尝试将值插入sqlite3数据库表中的列 如下:
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转换为字符串,如下所示:
options = str(request.form.get("Software_Options"))
UUID = str(request.form.get("UUID_Identifier"))
Customer_Name = str(request.form.get("Customer_Name"))
Purchase_Order = str(request.form.get("Purchase_Order"))
currtime= str(datetime.datetime.now())[:10]
如果是整数则没有错误。 如果输入是一个字符串(例如约瑟夫),则会出现以下错误。知道为什么吗?
OperationalError: no such column: joseph
答案 0 :(得分:0)
您似乎从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()
使用这种类型的建筑,涉及'?'其他人反对注射攻击也被认为更安全。