반응형
쿼리 매개 변수를 MySQLdb
의 cursor.execute ()
메서드에 명명 된 사전으로 전달하여 SQL 주입에서 이스케이프 되도록하고 싶습니다.
이것이 KeyError
를 제공하는 이유를 설명해 주시겠습니까?
>>> c.execute('select id from users where username=%(user)s', {'user':'bob',})
KeyError: 'user'
매개 변수 스타일
인터페이스에서 예상하는 매개 변수 마커 형식화 유형을 나타내는 문자열 상수입니다.
'format'
= ANSI C printf 형식 코드 (예 :'... WHERE name = % s'
. 매핑 개체가conn.execute ()
에 사용되는 경우 인터페이스는 실제로'pyformat'
= Python 확장 형식 코드를 사용합니다.'... WHERE name = % (name) s'
. 그러나 API는 현재 paramstyle에서 둘 이상의 스타일을 지정하는 것을 허용하지 않습니다.
해결 방법
붙여 넣은 문서 다음에있는 줄이 질문에 답할 수 있습니다.
매개 변수 자리 표시자는 열 값을 삽입하는 데만 사용할 수 있습니다. 그들은 테이블 이름, 명령문 등과 같은 SQL의 다른 부분에는 사용할 수 없습니다.
참조 페이지 https://stackoverflow.com/questions/12831408
반응형
'MySql' 카테고리의 다른 글
MySQL phpmyadmin과 mysql에서 관계 생성에 대한 조언 (0) | 2021.01.24 |
---|---|
MySQL Why do we need to use Foreign Keys? (0) | 2021.01.24 |
MySQL JPA2 + Hibernate + Eclipse 4.2 + MySQL 5.5를 사용하여 엔티티에서 스키마 생성 (0) | 2021.01.24 |
MySQL MySql : Tinyint (2) 대 tinyint (1)-차이점은 무엇입니까? (0) | 2021.01.24 |
MySQL은 결과 값을 다른 값으로 바꿉니다. (0) | 2021.01.24 |
댓글