首頁 >資料庫 >mysql教程 >在MySQL中如何使用LOAD_FILE()函數? (程式碼範例)

在MySQL中如何使用LOAD_FILE()函數? (程式碼範例)

藏色散人
藏色散人原創
2019-03-27 14:08:497096瀏覽



在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_pa​​cket位元組。

你可以這樣檢查:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn