आपको 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 spec
(कुछ) parametrized SQL पर अधिक विवरण के लिए। सटीक समर्थित पैरामीटर प्रारूप प्रति डेटाबेस एडॉप्टर के लिए प्रलेखित हैं, इसलिए उसे भी जांचें। MySQLdb मॉड्यूल, उदाहरण के लिए, पायथन स्ट्रिंग स्वरूपण सिंटैक्स की नकल करता है, और %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
) या अजगर स्ट्रिंग स्वरूपण का दूसरा रूप, नामित प्रारूप विनिर्देशक:(%(foo)s, %(bar)s
)।