सिंगल कोट्स से बचने के लिए बैकस्लैश का उपयोग करना यह सुनिश्चित करने के लिए आमतौर पर इस्तेमाल की जाने वाली तकनीक है कि सिंगल कोट्स MySQL के पूर्ण स्ट्रिंग को संभालने में हस्तक्षेप नहीं करते हैं।
एक स्ट्रिंग को घेरने के लिए सिंगल कोट्स का उपयोग किया जाता है, इसलिए स्ट्रिंग के भीतर एक एकल उद्धरण ही कहर पैदा कर सकता है यदि यह ठीक से बच नहीं गया है। उद्धरण चिह्न से ठीक पहले बैकस्लैश डालने से यह सुनिश्चित हो जाता है कि MySQL समय से पहले स्ट्रिंग को समाप्त नहीं करता है।
हालाँकि, ऐसे अवसर भी हो सकते हैं जहाँ आप चाहते हैं कि बैकस्लैश बना रहे। उदाहरण के लिए, आप SQL कथन में स्ट्रिंग का उपयोग करने का इरादा कर सकते हैं, और इसलिए, आप चाहते हैं कि यह पहले ठीक से बच जाए।
यह वह जगह है जहां QUOTE()
फ़ंक्शन आता है।
MySQL QUOTE()
फ़ंक्शन एक परिणाम उत्पन्न करने के लिए एक स्ट्रिंग को उद्धृत करता है जिसे SQL कथन में ठीक से बच निकले डेटा मान के रूप में उपयोग किया जा सकता है। स्ट्रिंग को एकल उद्धरण चिह्नों और बैकस्लैश के प्रत्येक उदाहरण के साथ संलग्न करके लौटाया जाता है (\
), सिंगल कोट ('
), ASCII NUL
, और Control+Z एक बैकस्लैश से पहले।
QUOTE() फ़ंक्शन का सिंटैक्स
यहां बताया गया है कि सिंटैक्स कैसे जाता है:
QUOTE(str)
जहां str
(पहले से) बच निकला स्ट्रिंग है।
उदाहरण
एक उदाहरण शायद इसे मेरी व्याख्या से बेहतर समझाता है:
SELECT QUOTE('Don\'t!') AS Result;
परिणाम:
+-----------+ | Result | +-----------+ | 'Don\'t!' | +-----------+
पहली नज़र में, आप सोच रहे होंगे "लेकिन कुछ नहीं हुआ - परिणाम बिल्कुल तर्क के समान है"। हालाँकि, यही कारण है कि यह फ़ंक्शन उपयोगी है। अगर हमने QUOTE()
. का इस्तेमाल नहीं किया होता समारोह, यहाँ क्या हुआ होगा:
SELECT 'Don\'t!' AS Result;
परिणाम:
+--------+ | Result | +--------+ | Don't! | +--------+
तो QUOTE()
. का उपयोग करके फ़ंक्शन, हम सिंगल कोट्स और बैकस्लैश को बरकरार रखते हैं।
बेशक, कई मामलों में, यह वही है जो आप चाहते हैं। कई मामलों में, बैकस्लैश और आसपास के उद्धरण चाहिए हटाया जाना। लेकिन कुछ मामले ऐसे भी हो सकते हैं जहां आप वही चाहते हैं जो QUOTE()
फ़ंक्शन आपके लिए करता है।
वैकल्पिक
QUOTE()
फ़ंक्शन आपको ऐसा कुछ करने से बचाता है:
SELECT '''Don\\\'t!''' AS Result;
परिणाम:
+-----------+ | Result | +-----------+ | 'Don\'t!' | +-----------+
इसलिए यह हमें हर एक कोट के लिए तीन सिंगल कोट्स और हर एक बैकस्लैश के लिए तीन बैकस्लैश का उपयोग करने से बचाता है।