Tuesday, 15 April 2014

php - Postgresql Update a unique column and validate before Update -


परिदृश्य: एक व्यवस्थापक उपयोगकर्ता डीबी पर एक नया ग्राहक सम्मिलित करता है, इसमें 3 विशिष्ट कॉलम, पोस्टग्रेज़ आईडी, चालक लाइसेंस की तरह कुछ और एक ईमेल, बाद में मैं व्यवस्थापक उपयोगकर्ता को उस फ़ील्ड को अपडेट करने की इजाजत देता हूं, लेकिन जब मैं निश्चित रूप से मान्यता देता हूं तो वह गलत हो जाता है, क्योंकि वे पहले से मौजूद हैं I और यही समस्या है मैं सिम्फनी या किसी अन्य PHP फ़्रेमवर्क नहीं चल रहा हूं, मुझे लगा कि मैं आईडी को क्वेरी के भीतर भेजने और उदाहरण के लिए आईडी और ई-मेल के खिलाफ जांच कर सकता हूं, लेकिन जब से यह एक लाइव सत्यापन है, तो मैं सिर्फ इनपुट वैल्यू भेजता हूं।

< P> समाधान 1: व्यवस्थापक उपयोगकर्ताओं को उन फ़ील्ड को अपडेट करने की अनुमति न दें और उसे ग्राहक को हटाने और एक नया खाता बनाने की अनुमति न दें (यह आसान पलायन है)।

< मजबूत> समाधान 2? मैं किसी तर्क पर नहीं सोच सकता, मैं इस मुद्दे पर मान्य करने के लिए एक क्वेरी कैसे बना सकता हूं?

कुछ ऐसा:

  users.users से ईमेल का चयन करें जहां ईमेल = $ ईमेल और id! = $ Id? ??  

समस्या यह है कि मुझे इनपुट फील्ड के अंदर आईडी कैसे भेजा जा सकता है ... यह मेरा सत्यापन कोड है:

  ईमेल : {ट्रिगर: 'धुंधला', संदेश: 'एल ईमेल नो एस्पोडो', वैलेटर्स: {रिमोट: {संदेश: 'यॉ ऑटिवेयू यूयूयूयूआरयूई ईईईईएस ईमेल', यूआरएल: 'एक्शन / चक्की_वॉल। एफ़पीपी', डेटा: {टाइप : 'ईमेल'}, प्रकार: 'POST'}}},  

व्यवस्थापक कोड फ़ील्ड छोड़ते समय यह कोड सर्वर साइड पर चलता है।

हम कहते हैं कि मुझे 2 पंक्तियां मिली हैं:

  1. ईमेल: aaa@host.com
  2. ईमेल: बीबीबी @ Host.com

    users.users_web से ई-मेल = $ ईमेल

  3. चुनें

यदि व्यवस्थापक उपयोगकर्ता दूसरी पंक्ति अपडेट कर रहा है और इसे ' ईमेल को स्पर्श न करें, सब कुछ ठीक है, अगर वह उसी वैल के साथ ईमेल अपडेट करता है पंक्ति 1 (aaa@host.com) के रूप में मान्य है कि यह पुष्टि मान्य के रूप में वैध है क्योंकि अभी भी 1 गिनती है और अद्यतन 2 समान ईमेल भरने के अंत में होगा, लेकिन पोस्टग्रेस्क्ल अनुमति नहीं दे रहा है क्योंकि यह एक अनूठा क्षेत्र है, इसलिए जहां यह सभी गन्दा हो जाता है ।

अनन्य प्रतिबंधों को "पूर्व-मान्य" करने की कोशिश करने पर परेशान न करें बस डीबी को लिखें और उल्लंघन को पकड़ो। यह तेज़ और अधिक सही है "पूर्व-मान्य" करने की कोशिश करना किसी दौड़ की स्थिति है।

उदाहरण:


No comments:

Post a Comment