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