MySQL BLOB 読み込みの LOAD_FILE のトラブルシューティング
LOAD_FILE を利用して MySQL BLOB にファイルを読み込もうとすると、次のような問題が発生する可能性があります。続くquery:
INSERT INTO MyTable VALUES('7', LOAD_FILE('Dev:MonDoc.odt'))
ログイン後にコピー
明らかなエラーはありませんが、ファイルは BLOB に読み込まれません。この問題を解決するには、MySQL ドキュメントに概説されている条件に従うことが重要です。
-
ファイルの場所: ファイルはサーバー ホスト上に存在する必要があり、そのフル パスも必要です。
-
ファイル権限: ファイルは誰でも読み取り可能である必要があり、そのサイズは以下でなければなりません。 max_allowed_packet バイト。
-
システム変数設定: secure_file_priv システム変数が空ではないディレクトリ名で構成されている場合、ファイルはそのディレクトリ内に存在する必要があります。
-
ファイルの存在: ファイルが存在しないか、権限の問題によりアクセスできない場合、関数はreturn NULL.
-
使用例: マニュアルに記載されている正しい構文は次のとおりです。
UPDATE t
SET blob_col=LOAD_FILE('/tmp/picture')
WHERE>
ログイン後にコピー
問題のトラブルシューティングを行うには特定のケースでは、以下を考慮してください:
- を含む完全なファイル パスを指定していることを確認してください。必要なすべてのディレクトリ レベル。
- ファイル アクセスを許可するための適切なアクセス許可が付与されていることを確認します。
- 関数の戻り値を確認します。 NULL の結果は、ファイルのアクセスまたは可用性に問題があることを示します。
- マニュアルに記載されているクエリを試して、他の要因が動作に影響を与えているかどうかを確認してください。
以上がMySQL LOAD_FILE 関数が BLOB のロードに失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。