Таблица обновлений Python MySQL
Обновить таблицу
Вы можете обновить существующие записи в таблице с помощью инструкции «UPDATE»:
Пример
Перепишите столбец адреса с «Долина 345» на «Каньон 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()
. Необходимо внести изменения, иначе в таблицу не вносятся никакие изменения.
Обратите внимание на предложение WHERE в синтаксисе UPDATE: предложение WHERE указывает, какую запись или записи следует обновить. Если вы опустите предложение WHERE, все записи будут обновлены!
Предотвратить SQL-инъекцию
Считается хорошей практикой экранировать значения любого запроса, в том числе и в операторах обновления.
Это делается для предотвращения SQL-инъекций, которые являются распространенным методом веб-хакерства для уничтожения или неправильного использования вашей базы данных.
Модуль mysql.connector использует заполнитель %s
для экранирования значений в операторе удаления:
Пример
Экранируйте значения с помощью %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")