一覧へ戻る

insert.php

<?php
require_once __DIR__ . '/dbconnect.php';

$message = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    $size = filter_input(INPUT_POST, 'size', FILTER_VALIDATE_INT);
    $memo = trim($_POST['memo'] ?? '');

    if ($name === '' || $size === false || $size === null) {
        $message = '名前とサイズを正しく入力してください。';
    } else {
        $sql = 'INSERT INTO animal (name, size, memo) VALUES (:name, :size, :memo)';
        $stmt = $dbh->prepare($sql);
        $stmt->execute([
            ':name' => $name,
            ':size' => $size,
            ':memo' => $memo,
        ]);
        $message = 'データを追加しました。';
    }
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>データ追加 PDO版</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container my-4">
    <h1>データ追加</h1>
    <p><a href="index.html">トップページへ戻る</a></p>
    <?php if ($message !== ''): ?>
        <div class="alert alert-info"><?= h($message) ?></div>
    <?php endif; ?>
    <form method="post" action="insert.php">
        <div class="mb-3">
            <label for="name" class="form-label">name</label>
            <input type="text" name="name" id="name" class="form-control" required>
        </div>
        <div class="mb-3">
            <label for="size" class="form-label">size</label>
            <input type="number" name="size" id="size" class="form-control" required>
        </div>
        <div class="mb-3">
            <label for="memo" class="form-label">memo</label>
            <textarea name="memo" id="memo" class="form-control" rows="3"></textarea>
        </div>
        <button type="submit" class="btn btn-primary">追加</button>
    </form>
</div>
</body>
</html>