Python обновление таблицы

Обновление таблицы

Вы можете использовать предложение "UPDATE", чтобы обновить существующие записи в таблице:

Пример

Перепишите значение в столбце адреса "Valley 345" на "Canyoun 123":

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="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, "запись(ей) изменена)")

Запуск примера

Важно:Пожалуйста, обратите внимание на предложение mydb.commit()Необходимо выполнить изменения, в противном случае таблица не изменится.

Пожалуйста, обратите внимание на предложение WHERE в грамматике UPDATE: предложение WHERE определяет записи, которые должны быть обновлены. Если предложение WHERE пропущено, то обновятся все записи!

Предотвращение SQL-инъекций

Это хорошая практика escaping любого значения в запросе update.

Это делается для предотвращения SQL-инъекций, это распространенная техника хакеров, которая может разрушить или злоупотребить вашей базой данных.

Модуль mysql.connector использует замещатели %s Для escaping значений в delete-запросе:

Пример

Использование метода замещения %s для escaping значений:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="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, "запись(ей) изменена)")

Запуск примера