MySQL 中的参数化查询
使用 MySQLdb 模块将多个变量插入 MySQL 数据库表可能会很棘手。考虑以下语句:
cursor.execute (""" INSERT INTO Songs (SongName, SongArtist, SongAlbum, SongGenre, SongLength, SongLocation) VALUES (var1, var2, var3, var4, var5, var6) """)
但是,在 SQL 查询中使用字符串插值是有问题的,因为它可能会导致应用程序容易受到 SQL 注入的影响,从而引入安全漏洞。正确的做法是使用参数化查询,这样可以确保输入参数的正确转义。
转义参数
不要使用字符串插值,而是在查询中使用占位符并绑定使用元组为它们提供实际值。例如:
cursor.execute("INSERT INTO Songs (SongName, SongArtist, SongAlbum, SongGenre, SongLength, SongLocation) VALUES (%s, %s, %s, %s, %s, %s)", (var1, var2, var3, var4, var5, var6))
此方法通过在执行查询之前自动转义值来防止 SQL 注入。
以上是如何使用 Python 安全地将多个变量插入 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!