try:
for row in data:
id = row[0]
name= row[1]
b.execute("INSERT INTO NAME (NUMBER, NAME, ID) VALUES (1, %s, %s)" %(name, id))
conn.commit()
except: #rest code
我无法向数据库添加值(据我所知,因为名称变量),我总是收到此错误: ORA-00936:缺少表达式。我的代码有什么问题?我该如何正确指定参数?
答案 0 :(得分:1)
请改用绑定变量。不要使用%s并将参数直接放在字符串中,因为这会导致可能的SQL注入,更不用说引用问题了。这种方法允许传递任何合法价值,而不必担心这些事情!
try:
for row in data:
id = row[0]
name= row[1]
b.execute("INSERT INTO NAME (NUMBER, NAME, ID) VALUES (1, :1, :2)",
(name, id))
conn.commit()
except:
# rest code