आप phpMyAdmin स्रोत कोड (ओपन-सोर्स सॉफ़्टवेयर का एक लाभ) देख सकते हैं। लाइब्रेरी/निर्यात/sql.php स्क्रिप्ट फ़ाइल में Export.php स्क्रिप्ट और सहायक कार्यों की जाँच करें।
संक्षेप में, phpMyAdmin क्या करता है:
- दिए गए डेटाबेस में तालिकाओं की सूची प्राप्त करें (इससे तालिकाएँ दिखाएं...),
- प्रत्येक तालिका के लिए क्वेरी बनाएं (तालिका बनाएं दिखाएं...),
- इसे पार्स करें और इससे कॉलम परिभाषाएं निकालें,
- सभी डेटा प्राप्त करें (* से चुनें...)
- स्तंभ डेटा के अनुसार क्वेरी बनाएं।
मैंने अपने स्वयं के ऐप्स के लिए समान कोड लिखा है (बैकअप उद्देश्यों के लिए, जब phpMyAdmin का जीपीएल लाइसेंस मुझे इसका उपयोग करने की अनुमति नहीं देता है), हालांकि मैं कॉलम परिभाषाएं प्राप्त करने के लिए DESCRIBE का उपयोग करता हूं। मुझे लगता है कि वे SHOW CREATE TABLE आउटपुट को पार्स करते हैं क्योंकि इसमें DESCRIBE आउटपुट से अधिक जानकारी होती है।
एसक्यूएल वाक्यों को उत्पन्न करने के लिए भागने को संभालने के लिए थोड़ी देखभाल की आवश्यकता होती है, लेकिन यह कुछ लचीलेपन की अनुमति देता है, क्योंकि आप प्रकारों को परिवर्तित कर सकते हैं, डेटा को फ़िल्टर या स्वच्छ कर सकते हैं, आदि। यह mysqldump जैसे टूल का उपयोग करने से भी बहुत धीमा है और आपको चाहिए सभी उपलब्ध स्मृति का उपभोग न करने का ध्यान रखें (जल्द ही लिखें, अक्सर लिखें, सब कुछ स्मृति में न रखें)।
यदि आप एक माइग्रेशन प्रक्रिया (सर्वर से सर्वर तक) लागू करेंगे तो शायद इसे कुछ शेल स्क्रिप्टिंग के साथ करना और mysqldump को सीधे कॉल करना आसान होगा, जब तक कि आप PHP के साथ सब कुछ नहीं करेंगे।