Calling MySQL exe using PHP exec doesn't work -
मेरे पास PHP exec के साथ एक अत्यंत सरल स्क्रिप्ट है, कॉलिंग mysql कमांड:
$ dbhost = 'localhost'; $ Dbuser = 'root'; $ Dbpass = 'mypass'; $ Db = 'नौकरी'; $ File = 'job_create.sql'; $ MySQLDir = '' C: \ Program Files \ MySQL \ MySQL सर्वर 5.1 \ bin \ mysql "'; अगर ($ dbpass! = '') {$ Cmd = $ mySQLDir। ' -एच '। $ Dbhost।' --उपयोगकर्ता = '। $ dbuser।' --password = '। $ dbpass।' & LT; " '.dirname (__ फ़ाइल __)।' \\ '$ फ़ाइल।।'" '; } और ($ सीएमडी = $ mySQLDir।) -एच '। $ Dbhost।' --उपयोगकर्ता = '। $ dbuser।' & LT; " '.dirname (__ फ़ाइल __)।' \\ '$ फ़ाइल।।'" '; } // प्रतिध्वनि $ cmd; कार्यकारी ($ cmd,, बाहर $ $ retval); मुझे उम्मीद है कि उपर्युक्त स्क्रिप्ट को mysql कमांड, उपयोगकर्ता प्रमाणीकरण जानकारी में पास करें और job_create.sql को चलाएं उड़ना।
केवल एक चीज यह है कि यह काम नहीं करता है, इस अर्थ में कि job_create.sq l ठीक से नहीं चल रहा है। । मैंने नीचे दिए गए स्क्रिप्ट का उपयोग करके कमांड लाइन से mysql कमांड को सीधे कॉल करने की कोशिश की,
bin \ mysql.exe -h localhost --user = root --password = mypass & LT; "Job_create.sql" और यह काम करता है
कोई भी विचार यह कैसे ठीक करें?
संपादित करें: मैं इस स्क्रिप्ट को PHP कमांड लाइन से कॉल करता हूं। यानी, PHP.exe installdb.php
मुझे समाधान मिला
< P> समस्या यह है कि आपको स्पष्ट रूप से $ cmd में ""।, <पूर्व> exec ('"'। $ Cmd '' '' ',' ', $ आउट, $ रेटवाल); यह पूर्ण कोड है जो काम करता है:
& lt;? Php $ dbhost = 'localhost'; $ Dbuser = 'root'; $ Dbpass = 'पासवर्ड'; $ Db = 'नौकरी'; $ File = dirname (__ फ़ाइल __)। '\\'। 'Job_create.sql'; $ MySQLDir = '"सी: \\ प्रोग्राम फ़ाइलें \\ MySQL \\ MySQL सर्वर 5.1 \\ बिन \\ mysql.exe"'; अगर ($ dbpass! = '') {$ Cmd = $ mySQLDir। ' -एच '। $ Dbhost।' --उपयोगकर्ता = '। $ dbuser।' --password = '। $ dbpass।' & LT; " '। $ फ़ाइल।'" '; } और ($ सीएमडी = $ mySQLDir।) -एच '। $ Dbhost।' --उपयोगकर्ता = '। $ dbuser।' & LT; " '। $ फ़ाइल।'" '; } गूंज $ सीएमडी; Exec (''। $ सीएमडी। '' ', $ आउट, $ रेटवाल); गूंज "\ n"; गूंज ($ रेटवाल); ? & Gt;
Comments
Post a Comment