1、更新表(Update SET)
可以使用“ UPDATE”语句来更新表中的现有记录:
例如:
将地址列从“ Valley 345”覆盖为“ Canyoun 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()
,进行提交更改,否则不对表进行任何更改。
请注意UPDATE语法中的WHERE子句:WHERE子句指定应更新的记录。如果省略WHERE子句,所有记录将被更新!
2、防止SQL注入
最好在更新语句中转义任何查询的值。
这是为了防止SQL注入,这是破坏或滥用数据库的常见Web黑客技术。
mysql.connector模块使用占位符%s
来转义delete语句中的值:
例如:
通过使用占位符%s
方法转义值:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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")