方法1: BLOBデータ型を使用する方法
- データベースに画像を保存するためのテーブルを作成します。テーブルには、ID、画像の名前、および画像データを保存するためのBLOBカラムが含まれます。
CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
image BLOB
);
- アップロードされた画像を準備します。画像はフォームなどから受け取るものとします。
$imageName = $_FILES['image']['name'];
$imageData = file_get_contents($_FILES['image']['tmp_name']);
- プリペアドステートメントを使用して、画像をデータベースに挿入します。
$stmt = $pdo->prepare("INSERT INTO images (name, image) VALUES (?, ?)");
$stmt->bindParam(1, $imageName);
$stmt->bindParam(2, $imageData, PDO::PARAM_LOB);
$stmt->execute();
方法2: 画像のパスを保存する方法
- データベースに画像のパスを保存するためのテーブルを作成します。テーブルには、ID、画像の名前、および画像のパスを保存するためのVARCHARカラムが含まれます。
CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
path VARCHAR(255)
);
- アップロードされた画像を準備します。画像はフォームなどから受け取るものとします。
$imageName = $_FILES['image']['name'];
$imagePath = 'path/to/save/' . $imageName;
move_uploaded_file($_FILES['image']['tmp_name'], $imagePath);
- プリペアドステートメントを使用して、画像のパスをデータベースに挿入します。
$stmt = $pdo->prepare("INSERT INTO images (name, path) VALUES (?, ?)");
$stmt->bindParam(1, $imageName);
$stmt->bindParam(2, $imagePath);
$stmt->execute();
上記の方法は、画像をデータベースに直接保存する方法と、画像のパスを保存する方法の2つを示しています。どちらの方法を選択するかは、プロジェクトの要件や制約によります。