PHPでDB操作(10)
前回の続きで、edit.phpで編集した内容をDBへ更新させるために、以下のupdate.phpを作成します。
<?php
$dsn ='mysql:dbname=<データベース名>;host=localhost';
$user =<ユーザー名>;
$pass =<パスワード>;
// DBへ接続
try{
$dbh = new PDO($dsn, $user, $pass);
$id=$_POST['id'];
$name=htmlspecialchars($_POST['name'],ENT_QUOTES);
$tanka=htmlspecialchars($_POST['tanka'], ENT_QUOTES);
$sql = "UPDATE hyakunin_issyu SET name = :name, tanka = :tanka WHERE id = :id";
$stmt = $db->prepare($sql);
$params=array(":id" => $id, ":name" => $name, ":tanka" => $tanka );
$stmt->execute($params);
print "<h4>レコードを更新しました</h4><br>";
print '<a href="ichiran.php">一覧表示へ戻る</a><br>';
print '<a href="menu.html">メニューへ戻る</a>';
} catch (PDOException $e) {
echo 'DB接続エラー!: ' . $e->getMessage();
}
} ?>
SQLのUPDATE文は、UPDATE <テーブル名> SET <カラム名> = <値> ...です。カラム名と値はINSERT文と同じように後で割り当てるようにしています。WHERE句でカラム名IDが編集選択したIDを条件としています。