MySQL में, LOAD_FILE()
फ़ंक्शन किसी फ़ाइल को पढ़ता है और उसकी सामग्री को एक स्ट्रिंग के रूप में लौटाता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
LOAD_FILE(file_name)
जहां file_name
फ़ाइल का पूरा पथ है।
उदाहरण
यहां एक उदाहरण दिया गया है जहां मैं फ़ाइल से सामग्री का चयन करता हूं:
SELECT LOAD_FILE('/data/test.txt') AS Result;
परिणाम:
+------------------------------------------+ | Result | +------------------------------------------+ | This text is all that the file contains! | +------------------------------------------+
एक डेटाबेस उदाहरण
फ़ाइल की सामग्री को डेटाबेस में सम्मिलित करते समय क्वेरी कैसी दिख सकती है, इसका एक उदाहरण यहां दिया गया है:
INSERT INTO MyTable (FileId, UserId, MyBlobColumn) VALUES (1, 20, LOAD_FILE('/data/test.txt'));
इस मामले में, कॉलम MyBlobColumn
बीएलओबी का डेटा प्रकार है (जो इसे बाइनरी डेटा स्टोर करने की अनुमति देता है)।
और अब जबकि यह डेटाबेस में है, हम इसे चुन सकते हैं:
SELECT MyBlobColumn FROM MyTable WHERE UserId = 20;
परिणाम:
+------------------------------------------+ | MyBlobColumn | +------------------------------------------+ | This text is all that the file contains! | +------------------------------------------+
अगर फ़ाइल मौजूद नहीं है
अगर फ़ाइल मौजूद नहीं है, NULL लौटा दिया गया है:
SELECT LOAD_FILE('/data/oops.txt') AS Result;
परिणाम:
+--------+ | Result | +--------+ | NULL | +--------+
अधिक कारण आपको NULL मिल सकते हैं
आपको NULL भी मिलेगा निम्न में से कोई एक शर्त पूरी नहीं होती:
- फ़ाइल सर्वर होस्ट पर स्थित होनी चाहिए।
- आपके पास
FILE
होना चाहिए फ़ाइल को पढ़ने के लिए विशेषाधिकार। एक उपयोगकर्ता जिसके पासFILE
. है विशेषाधिकार सर्वर होस्ट पर किसी भी फ़ाइल को पढ़ सकता है जो या तो विश्व-पठनीय है या MySQL सर्वर द्वारा पठनीय है। - फ़ाइल सभी के द्वारा पठनीय होनी चाहिए और इसका आकार
max_allowed_packet
से कम होना चाहिए बाइट्स। यहां बताया गया है कि आप इसकी जांच कैसे कर सकते हैं:SHOW VARIABLES LIKE 'max_allowed_packet';
मेरा परिणाम:
+--------------------+----------+ | Variable_name | Value | +--------------------+----------+ | max_allowed_packet | 67108864 | +--------------------+----------+
- यदि
secure_file_priv
सिस्टम चर एक गैर-रिक्त निर्देशिका नाम पर सेट है, लोड की जाने वाली फ़ाइल उस निर्देशिका में स्थित होनी चाहिए। यहां बताया गया है कि आप इसे कैसे देख सकते हैं:SHOW VARIABLES LIKE 'secure_file_priv';
मेरा परिणाम:
+------------------+--------+ | Variable_name | Value | +------------------+--------+ | secure_file_priv | /data/ | +------------------+--------+
इस उदाहरण में, मैं केवल /data/ . से फ़ाइलें पढ़ सकता हूं निर्देशिका।