在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()函數在MySQL中使用的介紹,希望對需要的朋友有幫助!
以上是在MySQL中如何使用LOAD_FILE()函數? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!