ホームページ  >  記事  >  データベース  >  phpでmysqlに画像を保存する例を詳しく解説

phpでmysqlに画像を保存する例を詳しく解説

Y2J
Y2Jオリジナル
2017-05-23 15:06:581749ブラウズ

画像ファイルや 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 フォームを通じてファイルをデータベースに転送できます。
store.php3
// store.php3 - Florian Dittmer
?>
// フォームが送信されると、コードが実行されます:
if ($submit) {
/ / データベースへの接続
// (ホスト名、ユーザー名、パスワードを調整する必要がある場合があります)
MYSQL_CONNECT( "localhost", "root", "password");
$data = addedlashes (fread(fopen ($form_data, "r"), filesize($form_data)));
$result=MYSQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype)
[前の行からの続き: ] VALUES ($form_description, $data,$form_data_name,$form_data_size,$form_data_type)");
$id= mysql_insert_id();
print "
このファイルには次のデータベース ID があります: $id";
MYSQL_CLOSE();
} else {
/ / それ以外の場合は、新しいデータを保存するためのフォームを表示します
?>
ファイルの説明:

データベースにアップロード/保存するファイル:

}
?>
このプログラムを実行すると、単純な HTML フォームを参照し、「参照」をクリックしてファイルを選択し、「送信」をクリックします。
ファイルがウェブサーバーにアップロードされると、プログラムはアップロードしたばかりのファイルの ID を通知しますので、後で使用するためにこの ID を覚えておいてください。
ファイルにアクセスする方法に関するサンプル プログラム
このプログラムを通じて保存したファイルにアクセスできます
//getdata.php3 - Florian Dittmer 作成
//メソッドの呼び出し: getdata.php3?id =
if($id) {
// ホスト名、ユーザー名、パスワードを調整する必要がある場合があります:
@MYSQL_CONNECT( "localhost", "root", "password");
@mysql_select_db( "binary_data"); $query = "id=$id の bin_data,filetype を選択";
$result = @MYSQL_QUERY($query)
$data = @MYSQL_RESULT($result,0, "bin_data"); MYSQL_RESULT( $result,0, "filetype");
echo $data;
?> を使用する必要があります。 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 に変更する必要があります (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_pa​​cket=24M
5. それでもエラーが発生する場合:
遅い接続で大きなファイルを保存した場合、PHP のデフォルトの時間制限は 30 秒です。 max_execution_time (php.ini 内) の値を -1 に変更できます

【関連おすすめ】

Mysql 無料ビデオチュートリアル

2

異なるデータベースのテーブルを削除する SQL ステートメントの作成方法の詳細な説明

3. 1 台のマシンで複数の MySQL サービスを実行する方法を説明します

4. 仮想ホストを使用しない小規模な MySQL データベース バックアップ スクリプト

5. mysqldump を使用してテーブルをバックアップおよび復元する詳細な例

以上がphpでmysqlに画像を保存する例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。