SQLite3和python不插入行

2024-05-16 21:22:49 发布

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

我想在我的表中插入一行。我一直在关注这里的文档:https://docs.python.org/2/library/sqlite3.html我得到了错误:sqlite3.OperationalError:没有这样的列:asd。asd是我为奖学金名称输入的值。这是我的密码:

conn = sqlite3.connect('pathfinder.db')
c = conn.cursor()
c.execute("INSERT INTO %s VALUES (%s, %s, %s, %s, %s, %s, %s)" % (table, request.form['scholarship_name'],request.form['scholarship_gpa'],request.form['scholarship_amount'], "Male",request.form['specific_essay'], "[]","[]")) 

Tags: 文档httpsorgformdocsrequesthtml错误
1条回答
网友
1楼 · 发布于 2024-05-16 21:22:49

请考虑以下链接中建议的参数化:

# Never do this   insecure!
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)

字符串内插SQL语句,特别是用户从flask请求输入的SQL语句,可能会对数据库造成潜在的危险。因此,考虑在prepared语句中使用execute的第二个参数,该参数将值绑定到占位符?。你知道吗

# PREPARED STATEMENT
sql = "INSERT INTO {} VALUES (?, ?, ?, ?, ?, ?, ?)".format(table)

# QUERY EXECUTION
c.execute(sql, (request.form['scholarship_name'],
                request.form['scholarship_gpa'], 
                request.form['scholarship_amount'],  
                "Male", 
                request.form['specific_essay'], 
                "[]",
                "[]")
          ) 

相关问题 更多 >