이것은 qwidgets에서 데이터를 가져온 아래 목록입니다.
list = ['2020/02/21', 'name', 'location', 'item1', 'item2', 'item3', 'item4', 'item5']
또는
list = ['2020/02/21', 'name', 'location', 'item1']
또는
list = ['2020/02/21', 'name', 'location', 'item1', 'item2', 'item3']
이 목록 데이터를 SQLite3 데이터베이스에 삽입하는 방법. 아래 데이터베이스 구조를 사용하고 있습니다.
conn = sqlite3.connect('test.db')
conn.execute("INSERT INTO \
maintable(date,name,location,item1,item2,item3,item4,item5,item6, item7,item8, item9, item10) \
VALUES ('{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}')
쿼리 문자열에 매개 변수 값을 추가하여 요청을 작성해서는 안됩니다. 나는 공격자가 단순히 매개 변수 값을 위조 하여 임의의 SQL 명령을 전달할 수있게 했던 이전 SQL 주입 공격 의 벡터였습니다 .
권장되는 방법은 매개 변수화 된 쿼리를 사용하는 것입니다.
여기에서 간단하게 수행해야합니다.
conn.execute("INSERT INTO \
maintable(date,name,location,item1,item2,item3,item4,item5,item6, item7,item8, item9, item10) \
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", lst + [None] * (13 - len(lst)))
BTW lst
내장 list
함수를 숨기지 않도록 목록 변수의 이름을 변경 했습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다