[php+SQL]DBにバイナリデータで保存した画像を出力するPHPファイル作成

要点だけ

こうする

<?php
$pdo = new PDO(
  // ホスト名、データベース名
  'mysql:host=***;dbname=***;',
  // ユーザー名
  '***',
  // パスワード
  '***',
  // レコード列名をキーとして取得させる
  [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]
);
$id = $_GET['id']; //キーの指定

$stmt = $pdo->prepare("SELECT * FROM picture WHERE master_id IN ($id)");
$stmt->execute();

$image = $stmt->fetch();
header('Content-type: ' . $image['image1_meta']);
echo $image['image1'];
exit();
?>

テーブル「picture」の「master_id」を指定して該当のデータを引っ張る。その中にある「image1」にバイナリデータ、「image_meta」にファイル形式を格納してある。

画像データの指定はURLにパラメータ「id」を付けて「master_id」と紐付けてある。

→「$_GET[‘id’]」と「WHERE master_id IN ($id)」。

このPHPを開くと画像ファイルの直リンクみたいな感じになるんで、だから<img>のsrcにphpのパス+パラメータを指定すればいい。

コメント

タイトルとURLをコピーしました