2010-02-11 12 views
43

क्या पीडीओ तैयार कथन वस्तु उत्पन्न करने के लिए उपयोग की जाने वाली क्वेरी को पुनर्प्राप्त करने का कोई तरीका है?पीडीओ से तैयार प्रश्न प्राप्त करें

+0

संभावित डुप्लिकेट [पीडीओ तैयार कथन से कच्चे एसक्यूएल क्वेरी स्ट्रिंग प्राप्त करना] (http://stackoverflow.com/questions/210564/getting-raw-sql-query-string-from-pdo-prepared-statements) – FFirmenich

उत्तर

31

$statement->queryString आज़माएं।

+0

बिंगो : http://www.php.net/manual/en/class.pdostatement.php#92046 – Strae

+38

जब भी मैं इसका उपयोग करता हूं, यह अभी भी पैरा-धारकों के रूप में पैरा दिखाता है। क्या पैराम सेट के साथ स्ट्रिंग प्राप्त करने के लिए वैसे भी है? जिस तरह से डीबी इसे प्राप्त करता है? –

+3

आपको अपने डेटाबेस लॉग जांचना होगा। MySQL के लिए, इस पृष्ठ को जांचें: http://dev.mysql.com/doc/refman/5.0/en/query-log.html – Arkh

9

आप डिफ़ॉल्ट \ पीडीओ और \ PDOStatement वस्तु का विस्तार करने के लिए विरोध नहीं कर रहे हैं, तो आप को देख पर विचार हो सकता है:

github.com/noahheck/E_PDOStatement

पीडीओ को इस विस्तार आप एक के रूप में एक पूर्ण क्वेरी बयान को देखने के लिए अनुमति देता है डेटाबेस स्तर पर क्या निष्पादित किया जा सकता है इसका उदाहरण। यह आपके पीडीओ स्टेटमेंट के बाध्य पैरामीटर को इंटरपोल करने के लिए रेगेक्स का उपयोग करता है।

डिफ़ॉल्ट \ PDOStatement परिभाषा को विस्तारित करके, E_PDOStatement आपके सामान्य कार्य प्रवाह में संशोधन की आवश्यकता के बिना डिफ़ॉल्ट कार्यक्षमता में इस वृद्धि को प्रदान करने में सक्षम है।

अस्वीकरण: मैंने यह एक्सटेंशन बनाया है।

मुझे उम्मीद है कि यह किसी और के लिए सहायक होगा।

0

स्व पदोन्नति: https://github.com/ellisgl/GeekLab-GLPDO आप डीबग विधि के साथ अपेक्षित क्वेरी क्या आउटपुट कर सकते हैं आउटपुट कर सकते हैं। मैं इसे हाल ही में अद्यतन कर रहा हूं।

संबंधित मुद्दे