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

पायथन MySQLdb त्रुटि - इसका क्या कारण है

क्वेरी बनाने के लिए आपका कोड स्ट्रिंग मानों को उद्धृत करने का प्रयास नहीं कर रहा है:

cmd = "INSERT INTO resulttest (category, value, timestamp) VALUES (" + key + ", " + str(value) + ", " + str(timestamp) + ")"

आपके द्वारा मुद्रित SQL कथन को देखें:

INSERT INTO resulttest (category, value, timestamp) VALUES (composed, 2, 1343186948.8)

"श्रेणी" को उद्धृत नहीं किया जाना चाहिए?

आपको पहले स्थान पर स्ट्रिंग ऑपरेशंस के साथ SQL कथन नहीं लिखना चाहिए। इस प्रकार SQL इंजेक्शन भेद्यताएँ होती हैं। इसके बजाय आपको प्लेसहोल्डर्स का उपयोग करना चाहिए और MySQL लाइब्रेरी को उनके साथ डील करने देना चाहिए:

c.execute(
    "INSERT INTO resulttest (category, value, timestamp) VALUES (?, ?, ?)", 
    (key, value, timestamp)
)


  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 में सीरियलाइज्ड डेटा से बचना और सम्मिलित करना

  3. एकाधिक SQL फ़ाइलों से SQL को पुनर्स्थापित करना

  4. MySQL में डेटटाइम कैसे राउंड करें?

  5. GeoDjango और MySQL:अंक NULL नहीं हो सकते हैं, मुझे और किस खाली मूल्य का उपयोग करना चाहिए?