7-5
加入儲存修改(更新)功能
- 更新資料的SQL語法:
UPDATE `資料表名稱` SET `欄位1`='值1', `欄位2`='值2', ... [WHERE 篩選條件] [LIMIT 筆數]
- 編輯完送出後,必須能儲存修改,所以我們修改
admin.php
,更新後一般會直接導向到前台的該文章完整頁面
switch ($op) {
...略...
// 更新文章
case 'update':
update($id);
header("location: index.php?op=show&id=$id");
exit;
...略...
}
- 然後新增
update()
函式(可以直接拿 store()
來修改),我們暫時先不管檔案上傳的部份,只要先讓文章內容能修改即可。
// 更新文章
function update($id)
{
global $pdo;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// 取得表單值
$title = $_POST['title'];
$content = $_POST['content'];
$author = $_POST['author'];
$date = $_POST['date'];
$category = $_POST['category'];
try {
// 準備SQL語句
$sql = "UPDATE `news` SET `title` = ?, `content` = ?, `author` = ?, `date` = ?, `category` = ? WHERE `id` = ?";
// 預備語句
$stmt = $pdo->prepare($sql);
// 綁定參數並執行語句
$stmt->execute([$title, $content, $author, $date, $category, $id]);
} catch (PDOException $e) {
echo "更新失敗:" . $e->getMessage();
}
}
return $id;
}
- 此時,可以試試有沒有修改效果