您好,登錄后才能下訂單哦!
本篇文章給大家主要講的是關于實戰演示MySQL中使用LOAD_FILE()函數的內容,感興趣的話就一起來看看這篇文章吧,相信看完實戰演示MySQL中使用LOAD_FILE()函數對大家多少有點參考價值吧。
在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有一個BLOB數據類型(允許它存儲二進制數據)。
現在它在數據庫中,我們可以選擇它:
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:
1.文件必須位于云服務器主機上。
2.你必須具有該FILE權限才能讀取該文件。擁有該FILE權限的用戶可以讀取云服務器主機上的任何文件,該文件是world-readable的或MySQL云服務器可讀的。
3.文件必須是所有人都可讀的,并且它的大小小于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/目錄中讀取文件。
以上關于實戰演示MySQL中使用LOAD_FILE()函數詳細內容,對大家有幫助嗎?如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。