<?php require_once('./shared/conn_pdo.php'); //查詢顯示要修改的資料====================================================== try { //準備到資料庫查詢要修改的資料 => 準備 PDO 的預處理器 $sql_str = "SELECT * FROM mb WHERE mb_id = :mb_id"; $stmt = $conn->prepare($sql_str); //接收連結帶過來的資料 $mb_id = -1; if( isset($_GET['mb_id']) && $_GET['mb_id']!='' ){ $mb_id = $_GET['mb_id']; } //設定準備好的$stmt物件中對應的參數值 $stmt->bindParam(':mb_id',$mb_id); //執行準備好的$stmt物件工作 $stmt->execute(); //$stmt物件執行的結果是資料集, 記錄指標跳下一筆獲取獲取出該筆記錄 $row_RS_mb = $stmt->fetch(PDO::FETCH_ASSOC); } catch ( PDOException $e ){ die("ERROR!!!: ". $e->getMessage()); } ?>
準備要修改資料的表單HTML & 相關CSS設計,留意表單的active送到哪?
接著在表單欄位中填上要修改的資料
<input type="text" name="mb_name" maxlength="10" required placeholder="請輸入留言者姓名" value="<?php echo $row_RS_mb['mb_name']; ?>">
<textarea name="mb_content" rows="5" required placeholder="請輸入留言內容....."><?php echo $row_RS_mb['mb_content']; ?></textarea>
<input type="hidden" name="mb_id" value="<?php echo $row_RS_mb['mb_id']; ?>">
參考資料更改的方式: w3schools 的介紹、 RUNOOB 菜鳥教程 的介紹
//判斷是否來自表單送出了資料, 要更新資料============ if( isset($_POST['MM_process']) && $_POST['MM_process']=='update' ){ try{ //準備要修改資料的語法 => 準備 PDO 的預處理器 $sql_str = "UPDATE mb SET mb_name = :mb_name, mb_content = :mb_content WHERE mb_id = :mb_id"; //執行$conn物件中的prepare()預處理器 $stmt = $conn->prepare($sql_str); //接收表單輸入的資料 $mb_name = $_POST['mb_name']; $mb_content = $_POST['mb_content']; $mb_id = $_POST['mb_id']; //設定準備好的$stmt物件中對應的參數值 $stmt->bindParam(':mb_name' ,$mb_name); $stmt->bindParam(':mb_content' ,$mb_content); $stmt->bindParam(':mb_id' ,$mb_id); //執行準備好的$stmt物件工作 $stmt->execute(); header('Location:../?page=mb_index'); } catch (PDOException $e ){ die("Error!: ". $e->getMessage()); } }