2012-02-11 17 views
6

मैं एक iPhone अनुप्रयोग के लिए SQLite उपयोग कर रहा हूँ और मैं इस तरह एक प्रश्न उपयोग कर रहा हूँ:SQLite क्वेरी (iPhone में) में विशेष वर्ण

NSString *query = [[NSString alloc] initWithFormat:@"INSERT INTO Courses (name, credits, web, tName, tSurname, tMail, tOffice) VALUES (\'%@\', \'%@\', \'%@\', \'%@\', \'%@\', \'%@\', \'%@\');", self.name, self.credits, self.web, self.tName, self.tSurname, self.tMail, self.tOffice];

यह एक सरल सम्मिलित है, लेकिन मैं कर रहा हूँ स्पेन से और मुझे टिल्ड्स के साथ कुछ परेशानी हो रही है। अगर मैं कुछ ऐसा कार्य करें:

INSERT INTO Courses (name, credits, web, tName, tSurname, tMail, tOffice) VALUES ('test', 'test', 'test', 'test', 'test', 'test', 'test');", self.name, self.credits, self.web, self.tName, self.tSurname, self.tMail, self.tOffice];

सभी सही काम करता है।

समस्या तब होती है जब मैं दो या दो से अधिक शब्दों के साथ "विशेष पात्रों" जैसे ¿, ¡, `, ', ñ ... के साथ एक सम्मिलित करता हूं ... और मुझे नहीं पता कि इसे कैसे ठीक किया जाए: एस अगर क्वेरी केवल एक विशेष चरित्र होता है जिसमें कोई समस्या नहीं है।

उदाहरण के लिए:

इस क्वेरी काम कर रहा है (क्योंकि वहाँ केवल एक "A"):

INSERT INTO Courses (name, credits, web, tName, tSurname, tMail, tOffice) VALUES ('Matemáticas', '1', '', 'Name', 'Surname', '[email protected]', '');", self.name, self.credits, self.web, self.tName, self.tSurname, self.tMail, self.tOffice];

इस क्वेरी मुझे त्रुटि देता है "त्रुटि: के पास" '' ": सिंटेक्स त्रुटि "(एक देखते हैं क्योंकि 'ओ' और 'ए'): और

INSERT INTO Courses (name, credits, web, tName, tSurname, tMail, tOffice) VALUES ('Gestió', '1', '', 'à', 'Surname', '[email protected]', '');", self.name, self.credits, self.web, self.tName, self.tSurname, self.tMail, self.tOffice];

मैं के बीच शब्दों डालने की कोशिश की" 'और मैं के बीच एक ही मिलता है।

कोई विचार?

+0

हाय, क्या आपको इस समस्या का कोई ठोस समाधान मिला है, मैं पिछले तीन दिनों से इसे चला रहा हूं। –

+0

अभी तक खेद नहीं है – llKoull

उत्तर

0

मैंने आईफोन पर SQLite के साथ काम नहीं किया है, लेकिन क्या आपने लाइब्रेरी को प्रीकंपिल्ड एसक्यूएल स्टेटमेंट बनाने का कोई तरीका ढूंढने के लिए देखा है? इससे कई मुद्दों को हल किया जा सकता है जिन्हें आप SQL प्रश्नों और आकस्मिक \ जानबूझकर एसक्यूएल इंजेक्शन की गलत व्याख्याओं का सामना कर सकते हैं।

+1

नहीं, मैंने पुस्तकालय के माध्यम से नहीं देखा है। अधिक जानकारी के लिए मैं आधिकारिक libsqlite3.dylib का उपयोग कर रहा हूं जो एक्सकोड के साथ आता है। अगर कोई अन्य पुस्तकालय जानता है तो मैं इसे आजमाउंगा। – llKoull

संबंधित मुद्दे