यह क्योंकि sqlite3_prepare_v2
जैसे एक बयान तैयार करने के लिए विफल रहता है sqlite3_bind_text
एक तालिका नाम करना असंभव है:क्या किसी तालिका के नाम को उद्धृत/भागने के लिए कोई सी SQLite API है?
SELECT * FROM ? ;
मुझे लगता है तालिका नाम बयान पार्स करने के लिए की जरूरत है, तो के हवाले जरूरतों sqlite3_prepare_v2
से पहले हुआ है करने के लिए।
क्या sqlite3_quote_tablename
जैसा कुछ है? हो सकता है कि यह पहले से ही एक ऐसे नाम के तहत मौजूद है जिसे मैं पहचान नहीं सकता, लेकिन मुझे फ़ंक्शंस सूची में कुछ भी नहीं मिला।
आपके प्रस्तावित sqlite3_quote_tablename फ़ंक्शन एसक्यूएल इंजेक्शन हमलों को रोकने के लिए इनपुट को संचरित कर सकता है। ऐसा करने के लिए यह सुनिश्चित करने के लिए इनपुट को पार्स कर सकता है कि यह एक स्ट्रिंग अक्षर है। http://www.sqlite.org/lang_expr.html#litvalue – momeara
बहुत देर से प्रतिक्रिया: धन्यवाद, वह मार्ग मैंने लिया था। हालांकि, मेरे पूर्व नियोक्ता के पास उस कोड का मालिक है। यदि आप इसे उत्तर के रूप में पोस्ट करना चाहते हैं, तो मैं इसे स्वीकार करूंगा :) – gavinbeatty