前提
ウェブページを訪れた任意の人が編集可能なテキストエリアを作成しようとしています。
ページの内容はテキストエリアと保存ボタンのみで、次の動作を目指しています。
テーブルのカラムは"ID"と"contents"で、フォームの特性上、レコードはひとつしか使用しません。
実現したいこと
① ページを開くと、データベースから前回保存された内容が呼び出され、テキストエリアに入力された状態で表示さる
② 内容を変更(追記または削除)して保存ボタンを押すと、内容がデータベースに保存される
発生している問題
①までは下記コードで実現できましたが、②について下記コードにどのように追記すれば良いのかわかりませんでした。
該当のソースコード
PHP
1<?php2 $dsn = "mysql:dbname=*****;host=localhost";3 $user = "*****";4 $password = "*****";5 $id = 1;6 try {7 $dbh = new PDO($dsn, $user, $password);8 } catch (PDOException $e){9 print('connection failed:'.$e->getMessage());10 }11 $table_name = "test";12 $sql = "select * from $table_name where id = $id";13 $stmt = $dbh->query($sql);14 $result = $stmt->fetch(PDO::FETCH_ASSOC);15 $contents = $result['contents'];16 17 echo " 18 <form method='post'> 19 <textarea name='contents'>{$contents}</textarea> 20 <button type='submit'>保存</button> 21 </form>";22 23?>
試したこと
②を実現するために下記のようなSQLを使うのだと思うのですが、どのように組み込めばよいかわかりませんでした。
該当のソースコード
PHP
1 // フォームがサブミットされた場合のPOST処理2 $contents = $_POST['contents'];3 $sql2 = "UPDATE $table_name SET contents = $contents WHERE id = $id";
何卒ご教授いただければ幸いです。
0 コメント