मैं इस लाइन है कि ठीक काम करता है:SQLite पैरामीटर प्रतिस्थापन और उद्धरण
c.execute('select cleanseq from cleanseqs WHERE newID="%s"'%name)
लेकिन मैं SQLite पैरामीटर प्रतिस्थापन के बजाय बजाय स्ट्रिंग प्रतिस्थापन (क्योंकि मैं here देखते हैं कि इस सुरक्षित है) का उपयोग करना चाहते हैं।
यह मेरा (विफल) की कोशिश:
t = (name,)
c.execute('select cleanseq from cleanseqs WHERE newID="?"',t)
लेकिन इस लाइन रिटर्न:
'बाइंडिंग आपूर्ति की संख्या गलत है। वर्तमान कथन 0 का उपयोग करता है, और 1 आपूर्ति की जाती है। '
तो मेरे कथन का बायां हिस्सा काम नहीं करता है। मैं एक बाध्यकारी (नाम, टी में) की आपूर्ति कर रहा हूं लेकिन ऐसा लगता है कि प्रश्न चिह्न (?) को पार्स नहीं किया जा रहा है। अगर मैं उद्धरण उद्धरण हटा देता हूं?, यह काम करता है। लेकिन मैं चाहता हूं कि उद्धरण वहां रहें क्योंकि मुझे याद है कि ऐसे मामले हैं जहां मुझे उनकी आवश्यकता है।
तो सवाल यह है:
c.execute('select cleanseq from cleanseqs WHERE newID="%s"'%name)
पैरामीटर का उपयोग करना बहुत अच्छा है, यह नहीं है केवल सुरक्षित लेकिन बहुत तेज़। यहां पढ़ें: http://stackoverflow.com/questions/904796/how-do-i-get-around-the-problem-in-sqlite-and-c/926251#926251 – tuinstoel