यह प्रश्न समय-समय पर उठता रहता है। PHP से सीधे .sql स्क्रिप्ट चलाने का कोई अच्छा समाधान नहीं है। ऐसे किनारे मामले हैं जहां .sql स्क्रिप्ट में सामान्य कथन SQL कथन के रूप में निष्पादित नहीं किए जा सकते हैं। उदाहरण के लिए, mysql टूल में बिल्टिन कमांड
हैं। जो MySQL सर्वर द्वारा मान्यता प्राप्त नहीं हैं, उदा। CONNECT
, TEE
, STATUS
, और DELIMITER
।
इसलिए मैं @Ignacio Vazquez-Abrams के उत्तर
. आपको mysql
. का प्रयोग करके PHP में अपनी .sql स्क्रिप्ट चलानी चाहिए टूल, उदाहरण के लिए shell_exec()
के साथ
।
मुझे यह परीक्षण काम कर रहा है:
$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' "
. "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";
$output = shell_exec($command . '/shellexec.sql');
इन संबंधित सवालों के मेरे जवाब भी देखें:
- .sql फ़ाइलें अंदर से लोड हो रही हैं पीएचपी
- क्या किसी sql स्क्रिप्ट को किसी अन्य sql स्क्रिप्ट में संग्रहीत कार्यविधि से कॉल करना संभव है?
- PHP:एक mysql_query कथन में एकाधिक SQL क्वेरीज़