要编写一个安全的Python函数来在sqlite3中创建表,可以使用参数化查询来防止SQL注入攻击。下面是一个示例代码:
import sqlite3
def create_table():
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
table_name = input("请输入要创建的表名:")
# 使用参数化查询来防止SQL注入
query = "CREATE TABLE IF NOT EXISTS ? (id INTEGER PRIMARY KEY, name TEXT)"
cursor.execute(query, (table_name,))
conn.commit()
conn.close()
create_table()
在这个示例中,我们使用?
占位符来代替表名,并将表名作为参数传递给execute()
方法。这样可以确保表名是安全的,不会受到恶意输入的影响。
请注意,这只是一个简单的示例,你可能还需要添加其他的输入验证和错误处理机制来提高代码的健壮性和安全性。