📜  Python MySQL-更新表(1)

📅  最后修改于: 2023-12-03 15:18:56.796000             🧑  作者: Mango

Python MySQL - 更新表

在MySQL数据库中,更新表数据是常见的操作,可以实现对表中数据的修改、更新和删除。在Python中,我们可以通过MySQL Connector库来操作MySQL数据库,并实现对表数据的更新。

连接数据库

首先,我们需要使用MySQL Connector库来连接MySQL数据库。可以通过以下代码实现:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()
更新表数据

更新表数据可以使用UPDATE语句,可以通过以下代码实现:

sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")

在上述代码中,我们将地址为'Valley 345'的数据更新为'Canyon 123'。

因为UPDATE需要提交,所以我们需要使用commit()方法。

在执行UPDATE语句之后,可以通过mycursor.rowcount来获取更新的记录数。

批量更新表数据

我们也可以通过循环来批量更新表数据,可以通过以下代码实现:

sql = "UPDATE customers SET address = %s WHERE address = %s"
val = ("Canyon 123", "Valley 345")

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")

在上述代码中,我们使用%s作为占位符,并通过val列表来替换占位符。

防止SQL注入

为了防止SQL注入攻击,我们需要使用参数化查询,可以通过以下代码实现:

sql = "UPDATE customers SET address = %s WHERE address = %s"
val = ("Canyon 123", "Valley 345")

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")

在上述代码中,我们使用%s作为占位符,并通过val列表来替换占位符。这种方式可以避免SQL注入攻击。