章節
刪除記錄
可以使用“DELETE FROM”語句,從現有表中刪除記錄:
示例
刪除地址為“Mountain 21”的記錄:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="你的用戶名",
passwd="你的密碼",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE address = 'Mountain 21'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, " 條記錄刪除")
注意: 數據庫修改后,需要使用
mydb.commit()
語句提交,不提交,修改不會生效。
注意DELETE語句中的WHERE子句: WHERE子句指定應該刪除哪些記錄。如果省略WHERE子句,將刪除所有記錄!
防止SQL注入
在delete語句中,為了防止SQL注入,通常應該轉義查詢值。
SQL注入是一種常見的web黑客技術,用於破壞或誤用數據庫。
mysql.connector 模塊有方法可以轉義查詢值:
示例
使用占位符%s
方法轉義查詢值:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="你的用戶名",
passwd="你的密碼",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE address = %s"
adr = ("Yellow Garden 2", )
mycursor.execute(sql, adr)
mydb.commit()
print(mycursor.rowcount, " 條記錄刪除")