ホームページ > データベース > mysql チュートリアル > MySQL で LOAD_FILE() 関数を使用するにはどうすればよいですか? (コード例)

MySQL で LOAD_FILE() 関数を使用するにはどうすればよいですか? (コード例)

藏色散人
リリース: 2019-03-27 15:25:31
オリジナル
7060 人が閲覧しました



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 権限を持つユーザーは、誰でも読み取り可能な、または 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 チュートリアル

この記事は、MySQL での LOAD_FILE() 関数の使用方法について説明しています。困っている友人の役に立てば幸いです。 !



以上がMySQL で LOAD_FILE() 関数を使用するにはどうすればよいですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート