溫馨提示×

mysql insert語句如何防止SQL注入

小樊
81
2024-08-30 21:25:30
欄目: 云計算

為了防止MySQL的INSERT語句受到SQL注入攻擊,你需要使用參數(shù)化查詢或預處理語句。這樣可以確保用戶提供的數(shù)據(jù)被當作參數(shù)處理,而不是SQL代碼的一部分。下面是使用Python和MySQL Connector庫進行參數(shù)化查詢的示例:

import mysql.connector

# 創(chuàng)建數(shù)據(jù)庫連接
cnx = mysql.connector.connect(user='your_username', password='your_password', host='localhost', database='your_database')
cursor = cnx.cursor()

# 定義要插入的數(shù)據(jù)
data = ('John Doe', 'john@example.com', '123-456-7890')

# 使用參數(shù)化查詢
insert_query = "INSERT INTO users (name, email, phone) VALUES (%s, %s, %s)"

try:
    # 執(zhí)行參數(shù)化查詢
    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()

在這個示例中,我們使用了參數(shù)化查詢(%s作為占位符),并將實際數(shù)據(jù)作為元組傳遞給execute()函數(shù)。這樣,MySQL Connector庫會自動處理參數(shù)的轉(zhuǎn)義和引用,從而防止SQL注入攻擊。同樣的方法也適用于其他編程語言和數(shù)據(jù)庫庫。

0