データベースをセットアップする
データベースで通常使用するテキスト型または整数型のフィールドと、画像の保存に使用する必要があるフィールドの違いは、保存する必要があるデータの量にあります。 MySQL データベースは大量のデータを保存するために特別なフィールドを使用し、データ型は BLOB です。
MySQL データベースは BLOB を次のように定義します。 BLOB データ型は、可変量のデータを格納できる大きなバイナリ オブジェクトです。 BLOB には、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB の 4 種類があり、それぞれ保存できる最大データ長が異なります。
使用する必要があるデータ型を紹介した後、次のステートメントを使用して、画像を保存するためのデータ テーブルを作成できます。
CREATE TABLE Images (PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB);
アップロード スクリプトの作成
ファイルのアップロード方法については、ここでは紹介しませんので、興味のある方は「」の関連記事を参照してください。ウェブタオバー」。ここでは、アップロードされたファイルを受信して MySQL データベースに保存する方法を主に説明します。具体的なスクリプト コードは次のとおりです。ファイル アップロード ドメインの名前は Picture であると仮定します。
If($Picture != "none") {
$PSize = filesize($Picture);
$mysqlPicture =addslashes(fopen($Picture, "r" ), $PSize));
mysql_connect($host,$username,$password) または die("SQL サーバーに接続できません");
@mysql_select_db($db) または die("選択できませんデータベース");
mysql_query("画像 (画像) 値に挿入 ($mysqlPicture)") または die("クエリを実行できません");
}else {
echo"画像はアップロードされていません";
}
?>
このようにして、画像をデータベースに正常に保存できます。 MySQL への画像の挿入で問題が発生した場合は、MySQL データベースで許可されている最大パケット サイズを確認できます。設定値が小さすぎる場合は、データベースのエラー ログで対応するレコードが検索されます。
次に、上記のスクリプトプログラムについて簡単に説明します。まず、「If($Picture != "none")」でファイルがアップロードされているかどうかを確認します。次に、addslashes() 関数を使用して、データ形式エラーを回避します。最後に、MySQL に接続し、データベースを選択して画像を挿入します。
画像の表示
画像をデータベースにインポートする方法を理解した後、データベースから画像を取得して HTML ページに表示する方法を検討する必要があります。このプロセスはもう少し複雑です。以下に実装プロセスを紹介します。
PHP は画像を表示するために対応するヘッダーを送信する必要があるため、ヘッダーを送信した後は他のヘッダーを送信できないため、一度に 1 つの画像しか表示できないという問題に直面します。
この問題を効果的に解決するために、2 つのファイルを作成しました。このうち、最初のファイルは HTML ページのテンプレートとなり、画像の表示位置を決定します。 2 番目のファイルは、データベースからファイル ストリームを タグの SRC 属性として実際に出力するために使用されます。
最初のファイルの単純な形式は次のとおりです。
<
mysql_connect($host,$username,$password) または die(" SQL サーバーに接続できません");
@mysql_select_db($db) または die("データベースを選択できません");
$result=mysql_query("SELECT * FROM イメージ") または die("実行できませんQuery" );
while($row=mysql_fetch_object($result)) {
echo "";
} ? >