我很难使用MySQLdb模块将信息插入到我的数据库中。我需要在表中插入6个变量。
cursor.execute (""" INSERT INTO Songs (SongName, SongArtist, SongAlbum, SongGenre, SongLength, SongLocation) VALUES (var1, var2, var3, var4, var5, var6)
""") 有人可以帮我这里的语法吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
提防对SQL查询使用字符串插值,因为它不能正确地转义输入参数,并使您的应用程序容易受到SQL注入漏洞的影响。这种差异看似微不足道,但实际上它是巨大的。
不正确(存在安全问题) c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s" % (param1, param2)) 正确(带有转义符) c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s", (param1, param2)) 这增加了混乱,即用于绑定SQL语句中的参数的修饰符在不同的DB API实现之间有所不同,并且mysql客户端库使用printf样式语法而不是更普遍接受的'?'。标记(例如,使用python-sqlite)。来源:stack overflow