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

2-12. PDO 方法 新增留言

設計新增的表單

<h1 data-no="1">問談區</h1>
 
<form method="post" action="mb_index.php" class="mbForm">
  <input type="text" name="mb_name" maxlength="20" required placeholder="請輸入留言者姓名">
  <textarea name="mb_content" rows="5" required placeholder="請輸入留言內容....."></textarea>
  <input type="submit" value="確定新增留言">
  <input type="reset" value="清除重寫">
</form>

CSS部份

<style>
  .mbForm { max-width: 800px; margin: 0 auto; }
  .mbForm input, .mbForm textarea { width: 100%; margin-bottom: 5px; padding: 5px; }
  .mbitem { margin: 5px; padding: 5px; border-bottom: 1px solid #ccc; }
  .mbitem:last-of-type { border: none; }
</style>

使用 PDO 新增留言資料的方式

參考資料新增的方式: w3schools 的介紹RUNOOB 菜鳥教程 的介紹

參考預處理再執行的方式: RUNOOB 菜鳥教程 的介紹

if( isset($_POST['mb_name']) ){
  try{
    /************************************
    //方法一:使用問號(?)參數來準備SQL語句
    $sql_str = "INSERT INTO mb (mb_name, mb_content) VALUES (?, ?)";
    
    //執行$conn物件中的prepare()預處理器
    $stmt = $conn->prepare($sql_str);
 
    //接收表單輸入的資料
    $mb_name=$_POST['mb_name'];
    $mb_content=$_POST['mb_content'];
 
    //將接收到的資料執行送到準備好的$stmt物件中
    //$stmt->execute([$mb_name, $mb_content]);
    $stmt->execute(array($mb_name, $mb_content));
    ************************************/
 
    //方法二:使用命名(:名稱)參數來準備SQL語句
    $sql_str = "INSERT INTO mb (mb_name, mb_content) 
                        VALUES (:mb_name, :mb_content)";
    //執行$conn物件中的prepare()預處理器
    $stmt = $conn->prepare($sql_str);
 
    //接收表單輸入的資料
    $mb_name    = $_POST['mb_name'];
    $mb_content = $_POST['mb_content'];
 
    //設定準備好的$stmt物件中對應的參數值
    $stmt->bindParam(':mb_name'    ,$mb_name);
    $stmt->bindParam(':mb_content' ,$mb_content);
 
    //執行準備好的$stmt物件工作
    $stmt->execute();
 
    header('Location:./?page=mb_index');
  }
  catch (PDOException $e ){
    die("Error!: ". $e->getMessage());
  }
}

 

 

go TOP