2015-03-06 7 views
7

मैं कोडइग्निटर के फॉर्म सत्यापन का उपयोग कर रहा हूं, और मैंने इसे ठीक करने के लिए बहुत समय व्यतीत किया है, बिना किस्मत के। मैं इस क्षेत्र है:कोडइग्निटर का is_unique हमेशा कह रहा है कि मान पहले से मौजूद है

<input type="text" name="user" id="user" length="20" placeholder="Username"> 

और मैं इस मान्य करने के लिए उपयोग कर रहा हूँ:

$this->form_validation->set_rules('user', 'Username', 'trim|required|min_length[3]|max_length[20]|alpha_dash|is_unique[users.user]'); 

मेरे db एक मेज users और user उस में एक क्षेत्र है, इसलिए मैं नहीं जानता कि क्या मैं गलत कर रहा हूं, या समस्या क्या है। तालिका खाली है (लेकिन मैंने रिकॉर्ड रखने के साथ भी कोशिश की है) और phpmyadmin में "unique" आइकन चुना गया है। मुझे पता है कि डीबी कनेक्शन ठीक काम कर रहा है, क्योंकि अगर मैं उस नियम को हटा देता हूं और अन्यथा वैध डेटा दर्ज करता हूं और फॉर्म जमा करता हूं, तो उपयोगकर्ता को डेटाबेस में जोड़ा जाता है।

जब तक is_unique एक और डीबी कॉन्फ़िगरेशन फ़ाइल का उपयोग नहीं करता है जिसे मैंने कॉन्फ़िगर नहीं किया है? मैं वास्तव में नहीं जानता। यह निराशाजनक है और मैं सोच रहा हूं कि मैं भी ढांचे के उपयोग को छोड़ सकता हूं ...

आपकी मदद बहुत बढ़िया होगी! धन्यवाद।

+0

अद्वितीय आइकन ड्रॉप कृपया और फिर – Arun

+0

नहीं, फिर भी प्रयास विफल कोशिश ... – justanelephant

+0

आप यहाँ http://paste.ofcode.org/ अपने नियंत्रक कोड पोस्ट कर सकते हैं और संपादित रूप में लिंक – Arun

उत्तर

1

यह शायद/मदद नहीं कर सकता है: आप के बाद फॉर्म सत्यापन को चलाने के बाद डीबी लोड कर रहे हैं। एक टाइपो uses.user भी है।

1

ट्रांजैक्ट-एसक्यूएल में शब्द "यूजर" एक विशेष शब्द है। बैक-टिक्स के साथ आस-पास के उपयोग.यूसर को आजमाएं:

`users.user`
... देखें कि क्या इससे मदद मिलती है।

1

इस कोशिश: -

$this->form_validation->set_rules('user', 'Username', 'trim|required|min_length[3]|max_length[20]|alpha_dash|unique[users.user]'); 
0

यह डेटाबेस लोड करने के लिए की जरूरत है।

$this->load->database(); 
संबंधित मुद्दे