Python MySQL ウェア

フィルタを使用して選択

テーブルからレコードを選択する際には、「WHERE」文を使用して選択をフィルタリングできます:

インスタンス

「Park Lane 38」のレコードを選択する、結果:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers" WHERE address ='Park Lane 38'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

インスタンスを実行

マッチング文字

また、指定されたアルファベットやフレーズで始まる、含まれる、または終わるレコードを選択することもできます。

以下を使用してください: マッチング文字:

インスタンス

選択された住所に「way」単語が含まれるレコードを選択してください:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address LIKE '"%way%"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

インスタンスを実行

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

ユーザーがクエリ値を提供した場合、これらの値をエスケープする必要があります。

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

mysql.connector モジュールにはクエリ値をエスケープする方法があります:

インスタンス

占位符 %s メソッドを使用してクエリ値をエスケープします:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address =" %s"
adr = ("Yellow Garden 2", )
mycursor.execute(sql, adr)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

インスタンスを実行