我有以下查询,其中变量是数组...
c.execute("INSERT into userData values=(%s,%s,%s,%s,%s,%s)",
t[i],k[0],k[1],k[2],user[i],total)
这会产生语法错误。
我也尝试过这个:
a = "INSERT INTO userData VALUES ('"+t[i]+"','"+k[0]+"','"+k[1]+"','"+k[2]+"',
'"+USER+"','"+total+"')"
c.execute(a)
conn.commit()
尽管没有错误,但这不会更新到数据库。
注意:c
- 光标,conn
- 连接。
最佳答案
cursor.execute()
期望查询参数作为元组。试试这个:
cursor.execute("INSERT INTO userData VALUES (%s, %s, %s, %s, %s, %s)",
(t[i], k[0], k[1], k[2], user[i], total))
请勿使用 +
等来构建 SQL 查询,因为这可能会导致代码中存在 SQL 注入(inject)漏洞。
关于Python、带有变量的 mySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35648453/