Python MySQL 修改表记录

修改表记录

在 MySQL 中您可以使用 "UPDATE" 语句来修改表中的现有记录:

实例

把地址列中的 "Valley 345" 覆盖为 "Canyoun 123":

  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3. host="localhost",
  4. user="myusername",
  5. passwd="mypassword",
  6. database="mydatabase"
  7. )
  8. mycursor = mydb.cursor()
  9. sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'"
  10. mycursor.execute(sql)
  11. mydb.commit()
  12. print(mycursor.rowcount, "record(s) affected")

重要:请注意语句 mydb.commit()。需要进行更改,否则不会表不会有任何改变。

请注意 UPDATE 语法中的 WHERE 子句:WHERE 子句指定应更新的记录。如果省略 WHERE 子句,则所有记录都将更新!


防止 SQL 注入

在 update 语句中,转义任何查询的值都是个好习惯。

此举是为了防止 SQL 注入,这是一种常见的网络黑客技术,可以破坏或滥用您的数据库。

mysql.connector 模块使用占位符 %s 来转义 delete 语句中的值:

实例

使用占位符 %s 方法来转义值:

  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3. host="localhost",
  4. user="myusername",
  5. passwd="mypassword",
  6. database="mydatabase"
  7. )
  8. mycursor = mydb.cursor()
  9. sql = "UPDATE customers SET address = %s WHERE address = %s"
  10. val = ("Valley 345", "Canyon 123")
  11. mycursor.execute(sql, val)
  12. mydb.commit()
  13. print(mycursor.rowcount, "record(s) affected")

分类导航