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

पायथन mysql.connector.errors। %s SQL क्वेरी को उद्धरणों के साथ पास किया गया

तथ्य यह है कि MySQLPython प्रश्नों में प्लेसहोल्डर चर के लिए मानक स्ट्रिंग प्रारूप मार्कर ("%") का उपयोग करता है, यह चीजों को भ्रमित कर सकता है।

अजगर के डीबी-एपीआई में क्वेरी प्लेसहोल्डर मानों . के लिए हैं where . में उपयोग किया जाता है खंड और insert और update कथन, और SQL इंजेक्शन आदि से बचने के लिए db-api द्वारा उचित रूप से पवित्र/बच गए/उद्धृत हैं। उनका उपयोग तालिका या फ़ील्ड नामों के लिए नहीं किया जाना चाहिए।

तो, आप यहां स्ट्रिंग स्वरूपण का उपयोग करके अपनी क्वेरी बनाना चाहते हैं:

sql =  'SHOW TABLES FROM %s;' % (db_name[0],)
cursor.execute(sql)

चूंकि db_name[0] विश्वसनीय स्रोत से आता है, यहां कोई सुरक्षा समस्या नहीं है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हाइबरनेट 5.0.1 और MySQL को कॉन्फ़िगर करने में त्रुटि

  2. हर बार जब मैं पुन:नियोजित करता हूं तो मुझे कनेक्शन पूल को फ्लश करने की आवश्यकता क्यों होती है?

  3. MySQL परिणाम सेट में एक अतिरिक्त काउंटर शामिल करें

  4. अंतर्राष्ट्रीयकरण के साथ MySQL डेटाबेस डिज़ाइन

  5. MySQL सर्वर सिस्टम वैरिएबल का नया मान सेट करने के लिए रीड-ओनली अनुमति को कैसे बदलें