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_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 チュートリアル 」
この記事は、MySQL での LOAD_FILE() 関数の使用方法について説明しています。困っている友人の役に立てば幸いです。 !
以上がMySQL で LOAD_FILE() 関数を使用するにはどうすればよいですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。