PythonMySQL更新テーブル
テーブルを更新
「UPDATE」ステートメントを使用して、テーブル内の既存のレコードを更新できます。
例
アドレス列を「Valley345」から「Canyon123」に上書きします。
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句は、更新する必要のある1つまたは複数のレコードを指定します。WHERE句を省略すると、すべてのレコードが更新されます。
SQLインジェクションを防ぐ
また、updateステートメントでも、クエリの値をエスケープすることをお勧めします。
これは、データベースを破壊または誤用する一般的なWebハッキング手法であるSQLインジェクションを防ぐためです。
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")