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()変更が必要でないと、テーブルに何も変わらないでしょう。

UPDATE 语法の WHERE 子句に注意してください:WHERE 子句は更新すべきレコードを指定します。WHERE 子句を省略すると、すべてのレコードが更新されます!

SQL インジェクションを防ぐ

update ステートメントでは、どんなクエリの値もエスケープすることは良い習慣です。

これは SQL インジェクションを防ぐためです。これは一般的なネットワークハッキング技術であり、データベースを破壊または悪用する可能性があります。

mysql.connector モジュールは占位符を使用 %s delete ステートメントの値をエスケープするために:

値をエスケープするための占位符 %s メソッドを使用します:

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, "記録(件)影響を受けました")

インスタンスを実行