Трябва да оставите библиотеката MySQL да обработва параметрите вместо вас; това има допълнителното предимство, тъй като позволява на MySQL да подготви вашето изявление, като прави многократните вмъквания също по-бързи:
cur = con.cursor()
sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', ?, ?, ?, ?, ?, 0, P, 0"
cur.execute(sql_input, (export_date, export_time, export_numtests, export_upstream, export_downstream))
Вижте спецификацията на Python DB API 2.0
за (някои) повече подробности относно параметризирания SQL. Точните поддържани формати на параметри са документирани за адаптер на база данни, така че проверете и това. Модулът MySQLdb, например, имитира синтаксиса за форматиране на низове на python и използва %s
като заместители:
sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', %s, %s, %s, %s, %s, 0, P, 0"
Други възможни опции за параметри са числа (:1, :2
и др.), имена (:foo, :bar
) или другата форма на форматиране на низове в Python, наречени спецификатори на формат:(%(foo)s, %(bar)s
).