파이썬 MySQL 어디
필터로 선택
테이블에서 레코드를 선택할 때 "WHERE" 문을 사용하여 선택을 필터링할 수 있습니다.
예시
주소가 "Park Lane 38"인 레코드를 선택하십시오. 결과:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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",
password="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
placeholder 메서드 를 사용하여 쿼리 값을 이스케이프합니다 .
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)