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

MySQL पैरामीटरयुक्त प्रश्न

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

गलत (सुरक्षा मुद्दों के साथ)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s" % (param1, param2))

सही (भागने के साथ)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s", (param1, param2))

यह इस भ्रम को बढ़ाता है कि SQL कथन में मापदंडों को बाँधने के लिए उपयोग किए जाने वाले संशोधक विभिन्न DB API कार्यान्वयनों के बीच भिन्न होते हैं और यह कि mysql क्लाइंट लाइब्रेरी printf का उपयोग करती है। अधिक सामान्यतः स्वीकृत '?' के बजाय शैली वाक्य रचना मार्कर (उदाहरण के लिए उपयोग किया जाता है। python-sqlite )।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:नल बनाम

  2. URL के लिए सर्वश्रेष्ठ डेटाबेस फ़ील्ड प्रकार

  3. अलग-अलग स्तंभों के साथ दो तालिकाओं को जोड़ना

  4. MySQL में संख्यात्मक मानों के लिए TOP X (या निचला) प्रतिशत चुनें

  5. MySQL में TRIM () फ़ंक्शन कैसे काम करता है