तो मेरे पास एक SQL डंप फ़ाइल है जिसे mysql_query() का उपयोग करके लोड किया जाना आवश्यक है। दुर्भाग्यवश, इसके साथ कई प्रश्न निष्पादित करना संभव नहीं है।PHP: एक mysql_query कथन में एकाधिक SQL क्वेरी
-> यह नहीं माना जा सकता कि mysql कमांड लाइन ग्राहक (mysql --help) स्थापित किया गया है - एसक्यूएल फ़ाइल सीधे
लोड करने के लिए -> यह नहीं माना जा सकता कि mysqli एक्सटेंशन
/* contents of dump.sql, including comments */
DELETE FROM t3 WHERE body = 'some text; with semicolons; scattered; throughout';
DELETE FROM t2 WHERE name = 'hello';
DELETE FROM t1 WHERE id = 1;
नीचे विस्फोट() नीचे काम नहीं करेगा क्योंकि डंप सामग्री के कुछ मूल्यों में अर्धविराम होता है।
$sql = explode(';', file_get_contents('dump.sql'));
foreach ($sql as $key => $val) {
mysql_query($val);
}
डंप फ़ाइल को संशोधित किए बिना SQL लोड करने का सबसे अच्छा तरीका क्या है?
आपके पास लाइन के अंत में अर्धविराम के मामले हैं, लेकिन यह एक कथन का अंत नहीं है, उदाहरण के लिए एक प्रक्रिया या ट्रिगर परिभाषा के शरीर के अंदर। और DELIMITER जैसे बयान जो अर्धविराम में समाप्त नहीं होते हैं। –