Python+MySQL:更新表中记录的基础操作

在对 MySQL 数据库进行操作时,经常需要更新某些字段的值。通过 Python 的 mysql-connector,可以使用 UPDATE 语句轻松实现数据更新,并可确保数据安全性。

1. 使用 UPDATE 修改记录

以下示例将 customers 表中地址为 “Valley 345” 的记录改为 “Canyon 123”:

import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",
    user="yourusername",
    password="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(),否则更新操作不会持久化到数据库。

2. 必须包含 WHERE 子句

WHERE 用于指定要更新的记录。若省略 WHERE,将导致更新所有行,须谨慎操作。

3. 防止SQL注入:使用占位符

如果更新语句中包含用户输入的值,为了防止恶意拼接导致SQL注入,建议使用占位符 %s

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")

这样写能自动转义传入的变量,保证安全。

小贴士

  • 更新前可以先用 SELECT 语句确认要修改的数据范围。
  • 更新成功后,mycursor.rowcount 可以告诉你受到影响的行数。
  • 若要一次更新多列,可在 SET 中列出多个 “列=值” 对,比如 SET name='John', address='Canyon 123'

通过以上方式,你即可在 Python 中安全且高效地修改 MySQL 表中的数据。记得随时查看并确认修改范围,避免不必要的数据紊乱。