0
내가 PyMySQLPyMySQL 매개 변수화 쿼리 및 날짜 형식
cur.execute("SELECT %s as label, UNIX_TIMESTAMP(CONVERT(DATE_FORMAT(date_added, '%%Y-%%m-%%d-%%H:%%i:00'),DATETIME)) as time, %s as metric FROM %s WHERE id >= %d GROUP BY label, time", (label, metric, table, min_id,))
나는 다음과 같은 오류가 무엇입니까 사용하여 다음 쿼리를 실행하려고 해요 :
TypeError: %d format: a number is required, not str
라벨, 통계, 테이블, 그리고 min_id은 문자열, 문자열, 문자열 및 int를 각각 나타냅니다.
%를 올바르게 이스케이프 처리하지 않습니까? 꽤 이것을 이해할 수 없으며, 몇 가지 시도를했습니다.
감사합니다.
하지만 ....하지만 .... whhyyyyy ????? 'select * from users from % d;'을 쿼리로 사용해보십시오! – Tom
아니요, 'cur.execute ('select * from user limit % d '% (10,))', SQL 매개 변수 대신 문자열 형식을 사용하고 ** 잠재적으로 위험한 경우에만 작동합니다. *. – mata
실례지만 SQL 쿼리에 정수를 삽입하는 것은 위험합니까? 그것은'10; 드롭 테이블 사용자,'는 정수입니다. – Tom