Files
php-db-question/answer/Ex06_image_regist.php
2026-10-28 16:53:31 +09:00

40 lines
1.3 KiB
PHP

<?php
// Ex07_query.php
$dsn = "mysql:host=localhost;dbname=employee_db;charset=utf8";
$username = "rezouser";
$password = "Rezo_0000";
try {
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
throw new Exception("POSTメソッドで送信してください。");
}
if (!isset($_FILES['image']) || $_FILES['image']['error'] !== UPLOAD_ERR_OK) {
throw new Exception("画像ファイルが正しくアップロードされていません。");
}
$filename = $_FILES['image']['name'];
$mime = $_FILES['image']['type'];
$imageData = file_get_contents($_FILES['image']['tmp_name']);
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO images (filename, mime, image) VALUES (:filename, :mime, :image)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':filename', $filename, PDO::PARAM_STR);
$stmt->bindParam(':mime', $mime, PDO::PARAM_STR);
$stmt->bindParam(':image', $imageData, PDO::PARAM_LOB);
$stmt->execute();
$lastInsertId = $pdo->lastInsertId();
echo "画像登録成功。画像ID: " . $lastInsertId;
} catch (Exception $e) {
echo "エラー: " . $e->getMessage();
} finally {
if (isset($pdo)) {
$pdo = null;
}
}