क्वेरी बनाने के लिए आपका कोड स्ट्रिंग मानों को उद्धृत करने का प्रयास नहीं कर रहा है:
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)
)