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

अजगर में MySQL के लिए उद्धरण से बचना

नहीं करें SQL मानों को प्रक्षेपित करने के लिए स्ट्रिंग स्वरूपण का उपयोग करें। SQL पैरामीटर का उपयोग करें:

SQL = 'INSERT INTO test_table (col1, col2, col3, col4) VALUES (%s, %s, %s, %s)'
cursor.execute(SQL, (var1, var2, var3, var4))

यहाँ %s एसक्यूएल पैरामीटर हैं; डेटाबेस तब आपके लिए मूल्यों से बचने का ख्याल रखता है ('कर्सर.एक्सक्यूट' के दूसरे तर्क के रूप में पारित)।

वास्तव में आपको किस सिंटैक्स का उपयोग करने की आवश्यकता है यह आपके डेटाबेस एडेप्टर पर निर्भर करता है; कुछ लोग %s का उपयोग करते हैं , अन्य लोग ? . का उपयोग करते हैं प्लेसहोल्डर्स के लिए।

आप अन्यथा इन मापदंडों के लिए, सूची की तरह, पायथन कंटेनरों का उपयोग नहीं कर सकते। आपको इसे पहले एक स्ट्रिंग प्रारूप में क्रमबद्ध करना होगा; आप उसके लिए JSON का उपयोग कर सकते हैं, लेकिन फिर आपको डेटाबेस को क्वेरी करते समय JSON को एक पायथन स्ट्रिंग में फिर से डिकोड करना याद रखना होगा। दूसरे प्रश्न के उत्तर ने यही बताने की कोशिश की।

उदाहरण के लिए, यदि var4 सूची है, जिसका आप उपयोग कर सकते हैं:

cursor.execute(SQL, (var1, var2, var3, json.dumps(var4)))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मायएसक्यूएल लेवेनशेटिन

  2. क्रॉन टैब का उपयोग करके MySQL डेटाबेस बैकअप कैसे लें और इसे हर रात Amazon s3 में कैसे डालें?

  3. UTF-8:डेटाबेस में सही ढंग से दिखा रहा है, हालांकि utf-8 वर्णसेट के बावजूद HTML में नहीं है

  4. MySQL TAN () फ़ंक्शन - MySQL में किसी मान की स्पर्शरेखा लौटाएं

  5. VB.Net का उपयोग करके ऑनलाइन MySQL डेटाबेस से कनेक्ट करना