Tabela aktualizacji MySQL w Pythonie
Aktualizuj tabelę
Istniejące rekordy w tabeli można aktualizować za pomocą instrukcji „UPDATE”:
Przykład
Zastąp kolumnę adresu z „Valley 345” na „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")
Ważne!: Zwróć uwagę na stwierdzenie:
mydb.commit()
. Dokonanie zmian jest wymagane, w przeciwnym razie w tabeli nie zostaną wprowadzone żadne zmiany.
Zwróć uwagę na klauzulę WHERE w składni UPDATE: Klauzula WHERE określa rekord lub rekordy, które należy zaktualizować. Jeśli pominiesz klauzulę WHERE, wszystkie rekordy zostaną zaktualizowane!
Zapobiegaj wstrzykiwaniu SQL
Dobrą praktyką jest unikanie wartości dowolnego zapytania, także w instrukcjach aktualizacji.
Ma to na celu zapobieganie wstrzykiwaniu SQL, które jest powszechną techniką hakerską w celu zniszczenia lub niewłaściwego wykorzystania bazy danych.
Moduł mysql.connector używa symbolu zastępczego %s
do ucieczki wartości w instrukcji delete:
Przykład
Wartości ucieczki przy użyciu metody zastępczej %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")