在对 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 表中的数据。记得随时查看并确认修改范围,避免不必要的数据紊乱。