मैं पीडीओ पुस्तकालयों के साथ नौसिखिया हूँ। मैं अपने डेटाबेस के रूप में mysql के साथ विकास पर्यावरण पर काम कर रहा हूं। मैं "?" का उपयोग करते समय तैयार और निष्पादित फ़ंक्शन का उपयोग करके अपने प्रश्नों को चलाने में सक्षम हूं प्लेसहोल्डर और नामित प्लेसहोल्डर्स का उपयोग करते समय बाइंड पैराम विधि (उदा: ": कॉलम")।हम कैसे जानते हैं कि पीडीओ एसक्यूएल इंजेक्शन से बच रहा है?
इसके बाद मैंने यह देखने की कोशिश की कि क्या पीडीओ mysql_real_escape_string करता है जैसे क्वेरी को स्वच्छ करने के लिए किसी भी उद्धरण को डालकर किसी भी तरह से बच निकलता है। मैं यह देखने की कोशिश कर रहा हूं कि क्वेरी क्या दिखाई देगी लेकिन मुझे जो भी मिलता है वह वह बयान है जिसे तैयार कथन में पारित किया गया है, लेकिन वह क्वेरी नहीं जिसे निष्पादित किया जाएगा।
मैंने $ result-> निष्पादन(), और $ परिणाम-> fetch() को var_dump करने की कोशिश की लेकिन निष्पादन कथन मुझे मेरे धारक के साथ मेरे तैयार कथन का एसक्यूएल देता है जबकि fetch स्टेटमेंट मुझे उस क्वेरी का परिणाम देता है।
क्या खोज क्वेरी को देखने का कोई तरीका है, या कम से कम क्वेरी चलाने से पहले पैरामीटर कैसे दिखेंगे ??
मुझे आशा है कि मैं अपने प्रश्न के साथ स्पष्ट कर रहा हूँ। : |
आप बहुत ज्यादा चिंता। तैयार बयान 100% पर आपके इनपुट से बचें। यदि आपको यह देखने की ज़रूरत है कि अंतिम क्वेरी कैसा दिखता है, तो आपको डेटाबेस क्वेरी लॉग सेट करना होगा। – netcoder
@netcoder तैयार कथन कुछ भी नहीं बचते हैं (जब तक संगत मोड में नहीं)। और क्वेरी लॉग –
@Col में कुछ भी नया नहीं है। Shrapnel: ठीक है तकनीकी रूप से हाँ यह करता है, हालांकि आप इसे जिस तरह से चाहते हैं शब्द कर सकते हैं। जैसा कि "क्वेरी लॉग में कुछ भी नया नहीं है", मुझे बस समझ में नहीं आता कि इसका क्या अर्थ है ... – netcoder