画像ファイルや HTML ファイルなどのバイナリ データを MySQL データベースに直接保存したい場合は、この記事が最適です。 HTML フォームを介してこれらのファイルを保存する方法と、これらのファイルにアクセスして使用する方法を説明します。
この記事の概要:
。 mysqlで新しいデータベースを作成します
。ファイルを保存するプログラム例
。ファイルにアクセスする方法のサンプルプログラム
mysql で新しいデータベースを作成する
まず、mysql に新しいデータベースを作成する必要があります。バイナリ ファイルはこのデータベースに保存されます。この例では、データベースを作成するために次の構造を使用します。
次の手順を実行する必要があります。
。 MySqlコントローラーを入力してください
。 「データベース binary_data を作成」コマンドを入力します。
。 「use binary_data;」コマンドを入力します。
。コマンドを入力してください
「CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY、description CHAR(50)、bin_data LONGBLOB、filename CHAR(50)、filesize CHAR(50)、filetype CHAR(50));」 (改行はできません) )
事故がなければデータベースとテーブルが作成されるはずです。
ファイルの保存方法のサンプルプログラム
この例では、HTML フォームを通じてファイルをデータベースに転送できます。
このプログラムを実行すると、単純な HTML フォームが表示されます。「参照」をクリックしてファイルを選択し、「送信」をクリックします。
ファイルが Web サーバーにアップロードされると、プログラムはアップロードしたばかりのファイルの ID を通知しますので、後で使用できるようにこの ID を覚えておいてください。
ファイルにアクセスする方法のサンプルプログラム
このアプリを通じて保存したファイルにアクセスできます
プログラムはどのファイルにアクセスするかを知っている必要があり、パラメータとして ID を渡す必要があります。
例: データベース内のファイルの ID は 2 です。次のように呼び出すことができます:
getdata.php3?id=2
画像をデータベースに保存すると、写真のように呼び出すことができます。
例: データベース内の画像ファイルの ID は 3 です。次のように呼び出すことができます。
1MBを超えるファイルを保存する方法:
1MB を超えるファイルを保存したい場合は、プログラム、PHP 設定、SQL 設定に多くの変更を加える必要があります。
次のヒントは、24MB 未満のファイルを保存するのに役立ちます。
1. store.php3 を変更し、MAX_FILE_SIZE の値を 24000000 に変更します。
2. PHP 設定を変更します。通常の状況では、PHP は 2MB 未満のファイルのみを許可します。(php.ini 内の) max_filesize の値を 24000000 に変更する必要があります。
3. MYSQL のデータ パッケージ サイズ制限を削除します。通常の状況では、MYSQL データ パッケージは 1 MB 未満です。
4. 次のパラメータを使用して MYSQL を再起動する必要があります。
/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O Record_buffer=1M -O max_allowed_packet=24M
5. それでもエラーが発生する場合:
遅い接続で大きなファイルを保存している場合、PHP のデフォルトの時間制限は 30 秒です。 max_execution_time (php.ini 内) の値を -1 に変更できます