여기에 다른 방법이 있습니다. MySQL 공식 웹 사이트에 문서화되어 있습니다.
https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html
정신적으로는 @Trey Stout의 대답과 동일한 메커니즘을 사용하고 있습니다. 그러나 나는 이것이 더 예쁘고 더 읽기 쉽다는 것을 알았습니다.
insert_stmt = (
"INSERT INTO employees (emp_no, first_name, last_name, hire_date) "
"VALUES (%s, %s, %s, %s)"
)
data = (2, 'Jane', 'Doe', datetime.date(2012, 3, 23))
cursor.execute(insert_stmt, data)
그리고 변수의 필요성을 더 잘 설명하기 위해 :
주의 : 이스케이프가 수행되고 있음을 유의하십시오.
employee_id = 2
first_name = "Jane"
last_name = "Doe"
insert_stmt = (
"INSERT INTO employees (emp_no, first_name, last_name, hire_date) "
"VALUES (%s, %s, %s, %s)"
)
data = (employee_id, conn.escape_string(first_name), conn.escape_string(last_name), datetime.date(2012, 3, 23))
cursor.execute(insert_stmt, data)