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

藏色散人
發布: 2019-03-27 15:25:31
原創
6946 人瀏覽過



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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!