관리 메뉴

개발 일지

[pymysql] Parameter Placeholder 본문

db/mysql

[pymysql] Parameter Placeholder

hjinm 2020. 11. 12. 10:57

 

pymysql 사용시 작성되는 sql 문장에 고정된 값이 아닌 변수를 통해 데이터 값을 넣어야하는 경우가 있다. 이때 사용되는 것이 parameter placeholder이다.

 

mysql의 경우 parameter placeholder로 %s를 사용하여 sql문을 만들고 execute()를 사용해 %s에 들어갈 값들을 지정해준다. 만약 여러개의 parameter placeholder가 필요한 경우, 해당 parameter placehoder에 대응하는 값들을 튜플에 순서대로 나열하여 사용할 수 있다.

유의할 점은 parameter placeholder는 string formatting에 사용되는 %d 등과는 다른 개념으로 변수의 형태와는 관계없이 동일하게 사용된다.

 

def user_info(user_idx):
    sql = '''select * from user where user_idx=%s'''
    
    conn = pymysql.connect(db연결)
    cursor = conn.cursor()
    cursor.execute(sql, user_idx)
    result = cursor.fetchone()
    conn.close()
    
    return result

 

def update_post(post_idx, contents):
    sql = '''update posts set contents=%s where post_idx=%s'''
    
    conn = pymysql.connect(db연결)
    cursor = conn.cursor()
    cursor.execute(sql, (contents, post_idx))
    conn.commit()
    conn.close()
    
    return 'OK'

 

 

참고: http://pythonstudy.xyz/python/article/202-MySQL-%EC%BF%BC%EB%A6%AC

'db > mysql' 카테고리의 다른 글

[Mysql] 데이터 insert 후 PK 얻기 (LAST_INSERT_ID())  (0) 2020.11.12