阅读量:0
为了防止MySQL的INSERT语句受到SQL注入攻击,你需要使用参数化查询或预处理语句。这样可以确保用户提供的数据被当作参数处理,而不是SQL代码的一部分。下面是使用Python和MySQL Connector库进行参数化查询的示例:
import mysql.connector # 创建数据库连接 cnx = mysql.connector.connect(user='your_username', password='your_password', host='localhost', database='your_database') cursor = cnx.cursor() # 定义要插入的数据 data = ('John Doe', 'john@example.com', '123-456-7890') # 使用参数化查询 insert_query = "INSERT INTO users (name, email, phone) VALUES (%s, %s, %s)" try: # 执行参数化查询 cursor.execute(insert_query, data) # 提交更改 cnx.commit() except mysql.connector.Error as error: print("Failed to insert data: {}".format(error)) finally: if cursor: cursor.close() if cnx: cnx.close()
在这个示例中,我们使用了参数化查询(%s
作为占位符),并将实际数据作为元组传递给execute()
函数。这样,MySQL Connector库会自动处理参数的转义和引用,从而防止SQL注入攻击。同样的方法也适用于其他编程语言和数据库库。