इंजेक्शन से बचने के लिए, execute
use का उपयोग करें %s
. के साथ प्रत्येक चर के स्थान पर, फिर सूची या टपल के माध्यम से मान को execute
के दूसरे पैरामीटर के रूप में पास करें . यहां दस्तावेज़ीकरण का उदाहरण
दिया गया है :
c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
WHERE price < %s""", (max_price,))
ध्यान दें कि यह अल्पविराम . का उपयोग कर रहा है , नहीं % (जो एक सीधा स्ट्रिंग प्रतिस्थापन होगा, बच नहीं पाएगा)। ऐसा न करें :
c.execute("""SELECT spam, eggs, sausage FROM breakfast
WHERE price < %s""" % (max_price,))
इसके अलावा, आपको पोजीशन होल्डर ('%s'
. के आसपास सिंगल कोट्स का उपयोग नहीं करना चाहिए ) यदि पैरामीटर एक स्ट्रिंग है जैसा कि ड्राइवर इन्हें प्रदान करता है।