Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

तैयार कथन का आंतरिक भाग कैसा होता है?

अगर आप वो करने की कोशिश कर रहे हैं जो ऐसा लगता है कि आप करने की कोशिश कर रहे हैं... ऐसा करने की कोशिश न करें।

तैयार बयान ऐसा नहीं है (या कम से कम ऐसा नहीं होना चाहिए)।

निष्पादन के लिए सर्वर को भेजने के लिए "समाप्त" क्वेरी उत्पन्न करने के लिए आपका क्लाइंट कोड क्वेरी स्ट्रिंग में मानों को इंटरपोलेट करने का प्रयास नहीं करना चाहिए। यह आपदा के लिए एक नुस्खा है, सुरक्षा की झूठी भावना का उल्लेख नहीं करने के लिए।

तैयार बयान ? . के साथ बयान देते हैं सर्वर के लिए प्लेसहोल्डर जैसा है, जहां सर्वर निष्पादन के लिए कथन "तैयार" करता है ... और फिर क्लाइंट निष्पादन के लिए सर्वर को पैरामीटर ("बाध्यकारी" पैरामीटर) भेजता है। ऐसा करने से, सर्वर कभी भी भ्रमित नहीं होगा कि "कौन सा हिस्सा SQL है" और "कौन सा हिस्सा डेटा है," जिससे sql इंजेक्शन असंभव हो जाता है और डेटा को अनावश्यक रूप से बचाना और साफ करना होता है।

यदि आप सी-एपीआई के साथ सीधे संवाद नहीं कर रहे हैं तो आपको अपनी लाइब्रेरी में उन विधियों को कॉल करना चाहिए जो आपके लिए उन्हीं कार्यों को उजागर करती हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:अज्ञात सिस्टम चर 'query_cache_size'

  2. क्या तैयार क्वेरी को देखने का कोई तरीका है क्योंकि इसे डेटाबेस पर निष्पादित किया जाएगा?

  3. एक SQL क्वेरी में दो तालिकाओं को मर्ज करें और दिनांक मानों को अद्वितीय बनाएं

  4. मैसकल:पंक्तियाँ खोजें, जहाँ टाइमस्टैम्प अंतर x . से कम है

  5. MySQL में सबक्वेरी पर GROUP_CONCAT का उपयोग करना