Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पायथन:MySQL से जुड़ने और प्रश्नों को निष्पादित करने का सबसे अच्छा अभ्यास और सबसे सुरक्षित तरीका

इंजेक्शन से बचने के लिए, 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' . के आसपास सिंगल कोट्स का उपयोग नहीं करना चाहिए ) यदि पैरामीटर एक स्ट्रिंग है जैसा कि ड्राइवर इन्हें प्रदान करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL स्टेटमेंट में बैकटिक और स्क्वायर ब्रैकेट में क्या अंतर है?

  2. MySQL त्रुटि 1064 को कैसे ठीक करें

  3. क्या किसी तालिका में स्तंभ क्रम के बारे में चिंता करने का कोई कारण है?

  4. लेफ्ट आउटर जॉइन मेरी लेफ्ट टेबल से सभी पंक्तियों को वापस नहीं करता है?

  5. MySQL में `REPLACE` और `INSERT ... ON DUPLICATE KEY UPDATE` के बीच व्यावहारिक अंतर क्या हैं?