Python 更新表

更新表

您可以使用 "UPDATE" 語句來更新表中的現有記錄:

實例

把地址列中的 "Valley 345" 覆蓋為 "Canyoun 123":

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) affected")

運行實例

重要:請注意語句 mydb.commit()。需要進行更改,否則不會表不會有任何改變。

請注意 UPDATE 語法中的 WHERE 子句:WHERE 子句指定應更新的記錄。如果省略 WHERE 子句,則所有記錄都將更新!

防止 SQL 注入

在 update 語句中,轉義任何查詢的值都是個好習慣。

此舉是為了防止 SQL 注入,這是一種常見的網絡黑客技術,可以破壞或濫用您的數據庫。

mysql.connector 模塊使用占位符 %s 來轉義 delete 語句中的值:

實例

使用占位符 %s 方法來轉義值:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  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, "record(s) affected")

運行實例