मेरे पास एक PHP स्क्रिप्ट है जो रिमोट सर्वर के MySQL कनेक्शन विवरण को पारित करती है और मैं इसे mysqldump
कमांड निष्पादित करना चाहता हूं। मैं php exec()
समारोह का उपयोग कर रहा ऐसा करने के लिए:PHP के माध्यम से mysqldump
<?php
exec("/usr/bin/mysqldump -u mysql-user -h 123.145.167.189 -pmysql-pass database_name > /path-to-export/file.sql", $output);
?>
सही लॉगइन विवरण इसे करने के लिए पारित कर दिया जाता है, तो यह बिल्कुल ठीक काम करेंगे। हालांकि, मुझे की जांच करने में समस्या हो रही है यदि यह अपेक्षा के अनुसार निष्पादित करता है और यदि यह नहीं पता कि क्यों नहीं। $output
सरणी खाली के रूप में लौटाता है, जबकि अगर मैं सीधे कमांड लाइन पर कमांड चलाता हूं तो एक संदेश मुद्रित होता है कि मुझे लॉगिन विफल रहा है। मैं ऐसे त्रुटि संदेशों को कैप्चर करना चाहता हूं और उन्हें प्रदर्शित करना चाहता हूं। ऐसा करने के बारे में कोई विचार क्या है?
यहां लिंक है: http://php.net/manual/en/function.exec.php और मुझे लगता है कि यह इस तरह से बेहतर कहता है: "यूनिक्स में सम्मेलन के द्वारा एक प्रक्रिया कुछ गलत होने पर 0 से कुछ भी लौटाती है" :) –
क्या यह जानने का कोई तरीका है कि $ return_var का प्रत्येक मूल्य क्या है, इसलिए मैं इसे एक सार्थक त्रुटि संदेश में अनुवाद कर सकता हूं? अनुमान लगाया जाएगा कि यह प्रत्येक कमांड के लिए अलग है। –
यदि $ return_var शून्य के बराबर नहीं है, तो $ आउटपुट में त्रुटि कोड होना चाहिए, क्योंकि प्रोग्राम stderr में त्रुटि लिखते हैं जो आपके द्वारा फ़ाइल पर रीडायरेक्ट किए गए stdout से भिन्न होता है। 'अगर ($ return_var) {मरें ($ आउटपुट); } ' –