WEB ◆ TS Library ◆ 熱衷分享 ◆ 享受教學相長 ◆ 無形的網絡擁有熱情溫度的傳遞

2-13. PDO 方法 修改留言

以 PDO 預處理器的方式取得要修改的資料

<?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送到哪?

接著在表單欄位中填上要修改的資料

  1. <input type="text" name="mb_name" maxlength="10" required placeholder="請輸入留言者姓名"
  2. value="<?php echo $row_RS_mb['mb_name']; ?>">
  1. <textarea name="mb_content" rows="5" required
  2. placeholder="請輸入留言內容....."><?php echo $row_RS_mb['mb_content']; ?></textarea>
  1. <input type="hidden" name="mb_id" value="<?php echo $row_RS_mb['mb_id']; ?>">

使用 PDO 預處理器的方式更改資料的方式

參考資料更改的方式: 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());
  }
}

 

 

go TOP